2014-01-14 59 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