throw
Açıklaması şöyle
Aynı C++'taki gibi exception'ı tekrar fırlatır. Şöyle yaparız.
Örnek
Elimizde şöyle bir kod olsun. f() çalşırken exception olursa x değişkeni kapatılır. Eğer x SqlConnectionHandler ise bu durum daha kolay anlaşılaibilir.
Çok katmanlı mimarilerde katmanlar kendi exceptionlarını tanımlayabilir. Katmanlar arası çağrılarda internal exception nesnelerinin arayüze uygun tiplere çevrilmesi gerekir.
Örneğin bir rest servisi geliştiriyor olalım. Her internal exception bir Http exception tipine çevrilir ve json verisi gönderilir.
Açıklaması şöyle
A throw statement can be used in a catch block to re-throw the exception that the catch block caught. In this case, the throw statement does not take an exception operand.
try
{
Method();
}
catch(MethodException)
{
throw;
}
Sadece throw Nerede KullanılırÖrnek
Elimizde şöyle bir kod olsun. f() çalşırken exception olursa x değişkeni kapatılır. Eğer x SqlConnectionHandler ise bu durum daha kolay anlaşılaibilir.
void f() {
try {
using (var x = AcquireResource()) {
...
}
} catch {
throw;
}
}
Internal ve External ExceptionÇok katmanlı mimarilerde katmanlar kendi exceptionlarını tanımlayabilir. Katmanlar arası çağrılarda internal exception nesnelerinin arayüze uygun tiplere çevrilmesi gerekir.
Örneğin bir rest servisi geliştiriyor olalım. Her internal exception bir Http exception tipine çevrilir ve json verisi gönderilir.
try {
securityService.login(credentials);
} catch (InvalidOAuthProviderException e) {
throw new BadRequestHttpException(e.getMessage(), e.getCode());
} catch (UserNotFoundException e) {
throw new NotFoundHttpException(e.getMessage(), e.getCode());
} catch (InactiveUserException e) {
throw new NotFoundHttpException(e.getMessage(), e.getCode());
} catch (InvalidOAuthTokenException e) {
throw new ForbiddenHttpException(e.getMessage(), e.getCode());
}
Hiç yorum yok:
Yorum Gönder