这段代码:

try {
  try {
    throw 1;
  } catch (e, s) {
    print("$e $s");
    throw e;
  }
} catch (e2, s2) {
  print("$e2 $s2");    
}

打印:

1 #0      main (file:///.../test.dart:34:7)

1 #0      main (file:///.../test.dart:37:7)

因此原始堆栈跟踪完全丢失。 是否有任何方法可以重新保留堆栈跟踪保留?

===============>>#1 票数:14 已采纳

当前版本的Dart VM和dart2js支持重新抛出,保留堆栈跟踪,并rethrow

void main() {
  try {
    try {
      throw 1;
    } catch (e, s) {
      print("$e $s");
      rethrow;
    }
  } catch (e2, s2) {
    print("$e2 $s2");    
  }
}

这会产生:

1 #0      main (file:///home/darshan/so/stacktrace.dart:4:7)

1 #0      main (file:///home/darshan/so/stacktrace.dart:4:7)
#1      main (file:///home/darshan/so/stacktrace.dart:7:7)

  ask by Justin Fagnani translate from so

未解决问题?本站智能推荐:

1回复

从关闭抛出异常

我一直在尝试设置一个简单的Serversocket,如果遇到一些错误,我想抛出一个异常(除了其他一些东西,即将var设置为false),它可以使用外部回调起作用,但是闭包呢? Dart编辑器给我一个错误,并拒绝运行它! 我也尝试过“ throw e”之类的东西,但是只要“ throw”
1回复

可反映0.3.4 - 新版本抛出异常

我刚刚更新了我的dart应用程序并在之后进行了pub缓存修复。 应用程序不运行并且调试抛出以下异常 该应用程序之前运行良好。 可能的错误? 谢谢泰迪
2回复

如何在Dart中测试抛出异常的函数?

假设我有一个抛出异常的函数: hello() { throw "exception of world"; } 我想测试它,所以我写了一个测试: test("function hello should throw exception", () { expect(()=&g
1回复

Dart的http服务器抛出异常

这个简单的dart程序启动并运行一段时间,但在一些交互之后会引发异常: 一段时间后它崩溃了。 例外情况是: 这是一个错误吗? 我该如何解决这个问题? 并且......一个不同的主题......为什么我可以在没有提供适当密码的情况下启动https服务器? 我希望服务
1回复

如何测试带参数的方法是否在dart中抛出异常?

如果我有 我想测试throwAnError是否抛出Exception,或者更确切地说是Error的实例 这是我的代码,但它不起作用
1回复

在Dart中使用抛出异常处理错误。 (捕获似乎没有执行)

我是第一次尝试Dart,但我无法进行错误处理。 这是一些有关它的信息。 资源: 具有HTML,CSS和Dart的Gist: gist.github.com/enjikaka/8164610 该项目的ZIP: ge.tt/6StW4cB1/v/0?c CodePe
2回复

html5lib dart。 通过类选择器查询抛出异常

我正在尝试通过选择器.nav获取具有nav类的元素。 结果lib抛出异常: 仅实现类型选择器。 代码示例: 控制台输出: 怎么了?
1回复

在Dart中将异常传递到堆栈

因此,来自Javascript世界,我可以处理在堆栈深处抛出的异常。 在Dart中执行相同操作无效。 我不确定如何将异常传递给堆栈的根。 willThrow() async { throw Exception('Im an exception'); } init() async
1回复

我可以通过Dart获得跟踪所有异步调用的“堆栈跟踪”吗?

考虑这样的代码: import 'dart:async'; foo() { new Timer(onesec, bar); } bar() { throw "from bar"; } const onesec = const Duration(seconds:1); main(
1回复

WebStorm中Dart的堆栈跟踪未与代码链接

在最新的WebStorm EAP(141.224)中开发的Dart应用程序的堆栈跟踪中的行未与我的代码中的位置(行和位置)链接。 它确实具有核心Dart库的链接。 下面的屏幕截图是一个示例。 是否有允许我执行此操作的设置,或者这仅仅是EAP版本中的错误? 更新:使用stack_