wrapWithExceptionHandler method
Wraps a route handler with exception handling.
Implementation
RequestHandler wrapWithExceptionHandler(RequestHandler handler) {
return (Request req, Response res) async {
try {
await handler(req, res);
} catch (e, stackTrace) {
final exceptionHandler = Khadem.make<ExceptionHandlerContract>();
final result = await exceptionHandler.handle(e, stackTrace);
if (!res.sent) {
res.status(result.statusCode).problem(
title: result.title,
status: result.statusCode,
detail: result.message,
type: result.type,
instance: result.instance,
extensions: {
if (result.details != null) 'details': result.details,
if (result.stackTrace != null)
'stack_trace': result.stackTrace.toString(),
...result.extensions,
},
);
}
}
};
}