mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 23:29:47 +00:00
1bfd01c1f7
This reverts commit 62bc61b367
.
R=floitsch@google.com
Review-Url: https://codereview.chromium.org/2968413002 .
61 lines
1.9 KiB
Dart
61 lines
1.9 KiB
Dart
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
part of dart.core;
|
|
|
|
/**
|
|
* An interface implemented by all stack trace objects.
|
|
*
|
|
* A [StackTrace] is intended to convey information to the user about the call
|
|
* sequence that triggered an exception.
|
|
*
|
|
* These objects are created by the runtime, it is not possible to create
|
|
* them programmatically.
|
|
*/
|
|
abstract class StackTrace {
|
|
StackTrace(); // In case existing classes extend StackTrace.
|
|
|
|
/**
|
|
* Create a `StackTrace` object from [stackTraceString].
|
|
*
|
|
* The created stack trace will have a `toString` method returning
|
|
* `stackTraceString`.
|
|
*
|
|
* The `stackTraceString` can be a string returned by some other
|
|
* stack trace, or it can be any string at all.
|
|
* If the string doesn't look like a stack trace, code that interprets
|
|
* stack traces is likely to fail, so fake stack traces should be used
|
|
* with care.
|
|
*/
|
|
factory StackTrace.fromString(String stackTraceString) = _StringStackTrace;
|
|
|
|
/**
|
|
* Returns a representation of the current stack trace.
|
|
*
|
|
* This is similar to what can be achieved by doing:
|
|
*
|
|
* try { throw 0; } catch (_, stack) { return stack; }
|
|
*
|
|
* The getter achieves this without throwing, except on platforms that
|
|
* have no other way to get a stack trace.
|
|
*/
|
|
external static StackTrace get current;
|
|
|
|
/**
|
|
* Returns a [String] representation of the stack trace.
|
|
*
|
|
* The string represents the full stack trace starting from
|
|
* the point where a throw occurred to the top of the current call sequence.
|
|
*
|
|
* The exact format of the string representation is not final.
|
|
*/
|
|
String toString();
|
|
}
|
|
|
|
class _StringStackTrace implements StackTrace {
|
|
final String _stackTrace;
|
|
_StringStackTrace(this._stackTrace);
|
|
String toString() => _stackTrace;
|
|
}
|