Как скинуть кастомную ошибку из dll расширения dll?
Я пытаюсь создать расширение, чтобы обернуть существующую DLL без глубоких знаний C/++. Я использовал пример расширения в качестве основы, и все, кажется, работает нормально, что я хотел бы сделать, это иметь некоторую обработку ошибок внутри моей DLL.
Есть ли способ отправки пользовательских ошибок обратно в dart, если что-то внутри DLL не удается? Будет ли это просто случай отправки, скажем, массив с первым параметром, являющимся логическим значением, относительно того, произошел ли сбой или нет, и вторым параметром, являющимся строкой для ошибки, если она есть. Или есть реальный способ выбросить ошибки из самой DLL?
Надеюсь, что это имеет смысл, спасибо,
1 ответ
Вы должны заглянуть внутрь dart_api.h
файл, он содержит много комментариев о нативном материале Dart.
я нашел Dart_ThrowException
функция там, но и комментарий о том, что Dart_NewUnhandledExceptionError
следует использовать вместо
Обе функции нуждаются в дескрипторе объекта исключения Dart. Кажется, что команда Dart использует свою собственную библиотеку Dart Util для их создания:
Dart_ThrowException(DartUtils::NewDartArgumentError("error message"))