Łapanie wyjątków za pomocą servicestack
Od jakiegoś czasu używamy ServiceStack do usług opartych na REST i do tej pory było to niesamowite.
Wszystkie nasze usługi zostały napisane jako:
public class MyRestService : RestService<RestServiceDto>
{
public override object OnGet(RestServiceDto request)
{
}
}
Dla każdego DTO mamy obiekt odpowiednika Response:
public class RestServiceDto
{
public ResponseStatus ResponseStatus {get;set;}
}
który obsługuje wszystkie wyjątki, jeśli zostaną rzucone.
Zauważyłem, że wyjątek jest rzucany wOnGet()
lubOnPost()
metody, a następnie opis statusu http zawiera nazwę klasy wyjątku, w której tak, jakbym rzucił:
new HttpError(HttpStatus.NotFound, "Some Message");
następnie opis statusu http zawiera tekst „Niektóre wiadomości”.
Ponieważ niektóre z pozostałych służb rzucają wyjątki, a inne rzucająnew HttpError()
, Zastanawiałem się, czy istnieje sposób bez zmiany wszystkich moich usług REST, aby złapać jakieś wyjątki i rzucićnew HttpError()?
Na przykład, jeśliOnGet()
metoda rzuca wyjątek, a następnie złap go i rzuć anew HttpError()
?