OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 part of dart.core; | |
6 | |
7 /** | |
8 * An interface implemented by all stack trace objects. | |
9 * | |
10 * A [StackTrace] is intended to convey information to the user about the call | |
11 * sequence that triggered an exception. | |
12 * | |
13 * These objects are created by the runtime, it is not possible to create | |
14 * them programmatically. | |
15 */ | |
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 | |
33 /** | |
34 * Returns a representation of the current stack trace. | |
35 * | |
36 * This is similar to what can be achieved by doing: | |
37 * | |
38 * try { throw 0; } catch (_, stack) { return stack; } | |
39 * | |
40 * The getter achieves this without throwing, except on platforms that | |
41 * have no other way to get a stack trace. | |
42 */ | |
43 external static StackTrace get current; | |
44 | |
45 /** | |
46 * Returns a [String] representation of the stack trace. | |
47 * | |
48 * The string represents the full stack trace starting from | |
49 * the point where a throw ocurred to the top of the current call sequence. | |
50 * | |
51 * The exact format of the string representation is not final. | |
52 */ | |
53 String toString(); | |
54 } | |
55 | |
56 class _StringStackTrace implements StackTrace { | |
57 final String _stackTrace; | |
58 _StringStackTrace(this._stackTrace); | |
59 String toString() => _stackTrace; | |
60 } | |
OLD | NEW |