OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 part of dart.core; | 5 part of dart.core; |
6 | 6 |
7 /** | 7 /** |
8 * An interface implemented by all stack trace objects. | 8 * An interface implemented by all stack trace objects. |
9 * | 9 * |
10 * A [StackTrace] is intended to convey information to the user about the call | 10 * A [StackTrace] is intended to convey information to the user about the call |
11 * sequence that triggered an exception. | 11 * sequence that triggered an exception. |
12 * | 12 * |
13 * These objects are created by the runtime, it is not possible to create | 13 * These objects are created by the runtime, it is not possible to create |
14 * them programmatically. | 14 * them programmatically. |
15 */ | 15 */ |
16 abstract class StackTrace { | 16 abstract class StackTrace { |
| 17 StackTrace(); // In case existing classes extend StackTrace. |
| 18 |
| 19 /** |
| 20 * Create a `StackTrace` object from [stackTraceString]. |
| 21 * |
| 22 * The created stack trace will have a `toString` method returning |
| 23 * `stackTraceString`. |
| 24 * |
| 25 * The `stackTraceString` can be a string returned by some other |
| 26 * stack trace, or it can be any string at all. |
| 27 * If the string doesn't look like a stack trace, code that interprets |
| 28 * stack traces is likely to fail, so fake stack traces should be used |
| 29 * with care. |
| 30 */ |
| 31 factory StackTrace.fromString(String stackTraceString) = _StringStackTrace; |
| 32 |
17 /** | 33 /** |
18 * Returns a [String] representation of the stack trace. | 34 * Returns a [String] representation of the stack trace. |
19 * | 35 * |
20 * The string represents the full stack trace starting from | 36 * The string represents the full stack trace starting from |
21 * the point where a throw ocurred to the top of the current call sequence. | 37 * the point where a throw ocurred to the top of the current call sequence. |
22 * | 38 * |
23 * The exact format of the string representation is not final. | 39 * The exact format of the string representation is not final. |
24 */ | 40 */ |
25 String toString(); | 41 String toString(); |
26 } | 42 } |
27 | 43 |
| 44 class _StringStackTrace implements StackTrace { |
| 45 final String _stackTrace; |
| 46 _StringStackTrace(this._stackTrace); |
| 47 String toString() => _stackTrace; |
| 48 } |
OLD | NEW |