| Index: pkg/shelf/lib/shelf_io.dart
|
| diff --git a/pkg/shelf/lib/shelf_io.dart b/pkg/shelf/lib/shelf_io.dart
|
| index c6853025bd94d39b665d319bef3a6dbc20474c82..878935f0a188a40d2a8df8675253414534ca2dda 100644
|
| --- a/pkg/shelf/lib/shelf_io.dart
|
| +++ b/pkg/shelf/lib/shelf_io.dart
|
| @@ -53,7 +53,13 @@ void serveRequests(Stream<HttpRequest> requests, Handler handler) {
|
| ///
|
| /// Returns a [Future] which completes when the request has been handled.
|
| Future handleRequest(HttpRequest request, Handler handler) {
|
| - var shelfRequest = _fromHttpRequest(request);
|
| + var shelfRequest;
|
| + try {
|
| + shelfRequest = _fromHttpRequest(request);
|
| + } catch (error, stackTrace) {
|
| + var response = _logError('Error parsing request.\n$error', stackTrace);
|
| + return _writeResponse(response, request.response);
|
| + }
|
|
|
| // TODO(nweiz): abstract out hijack handling to make it easier to implement an
|
| // adapter.
|
|
|