2014-01-14 58 views
1

我想创建一个扩展来包装一个现有的DLL没有广泛的C/++的知识。我已经使用了sample extension作为基础,一切看起来都很好,我想要做的是在我的dll中有一些错误处理。如何从飞镖扩展dll中引发自定义错误?

如果dll内的某些内容失败,是否有将自定义错误发送回dart的方法?是否只是发送一个数组让我们说一个数组,第一个参数是布尔值,是否失败,第二个参数是错误的字符串,如果有的话。或者有没有一种真正的方法来从DLL本身抛出错误?

希望这是有道理的, 谢谢,

回答

2

你应该看看里面dart_api.h文件,它包含了很多关于达特原生的东西的意见。

我已经找到Dart_ThrowException函数,但也有一条评论说应该使用Dart_NewUnhandledExceptionError来代替。

这两个函数都需要一个Dart异常对象句柄。看来,Dart团队使用他们自己的Dart Util library来创建它们:

Dart_ThrowException(DartUtils::NewDartArgumentError("error message")) 
+0

对不起忘记了标记为答复。我在他们的util库中挖掘并提取了创建自定义异常所需的函数。它基本上涉及创建我的异常类的新实例并将其发送给dart。感谢您的回应:) –

+0

看起来'Dart_ThrowException'将来会被移除,推荐的方法是使用'Dart_NewUnhandledExceptionError'创建Exception对象,然后使用'Dart_PropagateError'将它传播回Dart。 – martin