handleError method
Future
handleError(
- String handler,
- dynamic exception,
- StackTrace stacktrace, {
- HttpRequest? request,
- String? requestBody,
Implementation
Future handleError(String handler, exception, StackTrace stacktrace, {HttpRequest? request, String? requestBody}) async {
if (debug) {
print('###############################################################');
print('############### Unhandled Error ###############');
print(exception.toString());
print('############### Stack Trace ###############');
print(stacktrace.toString());
print('############### Catch Trace ###############');
try {
throw Exception("handle trace");
} catch (e, stack2) {
print(stack2.toString());
}
print('###############################################################');
}
String debugRequest = '';
if (request != null) {
debugRequest += """${request.method} ${request.requestedUri}\n${request.headers.toString()}\n""";
}
if (requestBody != null) {
debugRequest += requestBody;
}
String location = stacktrace.toString().split('\n').first;
await db.query(
'INSERT INTO run_errors SET '
'`app_id` = ?, '
'`handler` = ?, '
'`location` = ?, '
'`status` = "new", '
'`first_time` = NOW(), '
'`first_message` = ?, '
'`first_stack` = ?, '
'`first_request` = ? '
' ON DUPLICATE KEY UPDATE '
'`status` = VALUES(`status`), '
'`current_count` = `current_count` + 1, '
'`total_count` = `total_count` + 1, '
'`last_time` = VALUES(`first_time`), '
'`last_message` = VALUES(`first_message`), '
'`last_stack` = VALUES(`first_stack`), '
'`last_request` = VALUES(`first_request`)',
[serviceId, handler, location, exception.toString(), stacktrace.toString(), debugRequest],
);
}