Как скинуть кастомную ошибку из 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"))
Другие вопросы по тегам