Как получить текущую трассировку стека в Dart для Completer.CompleteException (исключение, stackTrace);

Если какой-то код возвращает будущее и определяет, что будущее должно возвращать «Ошибка» или «Исключение», как можно передать трассировку стека в Completer.completeException(exception, stackTrace);


person adam-singer    schedule 20.12.2012    source источник


Ответы (2)


Если я правильно понял: когда вы ловите исключение в dart, вы также можете поймать трассировку стека:

try {
  // something
} catch(e, stacktrace) {
  myCompleter.completeException(e, stacktrace);
}
person John Evans    schedule 20.12.2012
comment
Чтобы добавить к этому, если у вас нет текущего исключения, просто добавьте его в блок try и поймайте его самостоятельно. - person Justin Fagnani; 20.12.2012
comment
Привет, Адам, это звучит как неплохой ответ. Вы можете поставить зеленую галочку :) - person Shannon -jj Behrens; 20.12.2012
comment
Ответ Джона правильный, ответ, который я искал, принадлежит Джастину. - person adam-singer; 21.12.2012
comment
@JustinFagnani, почему бы вам не пойти дальше и не дать отдельный ответ, поскольку он был ближе к тому, что искал Адам. :) - person John Evans; 21.12.2012

Если вы не попали в ловушку, вы можете использовать StackTrace.current

person cambunctious    schedule 05.06.2018
comment
Это полезно, если вам нужно получить трассировку стека из любого произвольного места, но если вы находитесь внутри блока catch, выбранный ответ лучше, поскольку Dart уже предоставляет вам StackTrace. - person Abion47; 30.01.2019