2015-04-30 31 views
2

JavascriptCore允許我們通過JSExport協議將我們的Objective-C類公開給JavaScript。比方說,在一個公開的Objective-C類的方法中,遇到了引發異常的情況。有沒有辦法創建所述異常,並提高它,使JavaScript代碼可以處理它,因爲它會處理常規的JavaScript異常?從Objective-C引發異常返回Javascript

我試着做一個普通的舊[NSException raise...],並立即導致崩潰。

我降級到檢測提升條件,將該條件傳回到JavaScript,並讓JavaScript做拋出?

+0

與問題沒有直接關係,但在Objective-C中拋出異常的情況非常少見。 – nhgrif

+0

是的。在這種情況下,Objective-C僅僅是一個javascript調用的端點。意圖是將異常扔到JavaScript代碼並在那裏處理。 – Carl

回答

2

Objective-C JSContext object has exception property,that may be used to throw an exception to JavaScript。在頭文件,根據註釋:

之前一個回調從JavaScript製成一個Objective-C嵌段或 的方法,所述的異常屬性的先前值將被保留 和屬性將被設置爲零。回調完成後 將讀取異常屬性的新值,並恢復之前的值 。如果異常的新值不爲零,回調將導致 的值被拋出。