| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'package:source_span/source_span.dart'; | 5 import 'package:source_span/source_span.dart'; |
| 6 | 6 |
| 7 /// Runs [body] and wraps any format exceptions it produces. | 7 /// Runs [body] and wraps any format exceptions it produces. |
| 8 /// | 8 /// |
| 9 /// [name] should describe the type of thing being parsed, and [value] should be | 9 /// [name] should describe the type of thing being parsed, and [value] should be |
| 10 /// its actual value. | 10 /// its actual value. |
| 11 wrapFormatException(String name, String value, body()) { | 11 /*=T*/ wrapFormatException/*<T>*/(String name, String value, /*=T*/ body()) { |
| 12 try { | 12 try { |
| 13 return body(); | 13 return body(); |
| 14 } on SourceSpanFormatException catch (error) { | 14 } on SourceSpanFormatException catch (error) { |
| 15 throw new SourceSpanFormatException( | 15 throw new SourceSpanFormatException( |
| 16 'Invalid $name: ${error.message}', error.span, error.source); | 16 'Invalid $name: ${error.message}', error.span, error.source); |
| 17 } on FormatException catch (error) { | 17 } on FormatException catch (error) { |
| 18 throw new FormatException( | 18 throw new FormatException( |
| 19 'Invalid $name "$value": ${error.message}', | 19 'Invalid $name "$value": ${error.message}', |
| 20 error.source, | 20 error.source, |
| 21 error.offset); | 21 error.offset); |
| 22 } | 22 } |
| 23 } | 23 } |
| OLD | NEW |