The global handler AppHostBase.ServiceExceptionHandler handles only service exceptions . To handle exceptions that occur outside of services, you can set the global handler AppHostBase.ExceptionHandler , for example:
public override void Configure(Container container) { //Handle Exceptions occurring in Services: this.ServiceExceptionHandler = (request, exception) => { //log your exceptions here ... //call default exception handler or prepare your own custom response return DtoUtils.HandleException(this, request, exception); }; //Handle Unhandled Exceptions occurring outside of Services, //Eg in Request binding or filters: this.ExceptionHandler = (req, res, operationName, ex) => { res.Write("Error: {0}: {1}".Fmt(ex.GetType().Name, ex.Message)); res.EndServiceStackRequest(skipHeaders: true); }; }
To create and serialize a DTO for a response flow in a non- ExceptionHandler service , you need to access and use the correct serializer for the request from IAppHost.ContentTypeFilters .
See the wiki page for error handling for more information.
mythz source share