我一直在嘗試捕獲Salesforce自定義頂點類中的異常,但似乎不起作用。頂級類構造函數中的異常
在這種情況下,我有一個初始化環境的控制器構造函數,我試圖在構造函數中捕獲異常,但不起作用,異常沒有捕獲。
public MyController(){
try{
this.myVar = ApexPages.currentPage().getParameters().get('myParam');
....
}
catch(System.StringException se){
..
}
catch(System.NullPointerException ne){
..
}
catch(Exception e){
..
}
....
}
在我的情況下,myVar是Id類型的,所以如果有人想改變url中的id,它會拋出異常,也是在這個myVar之後有初始化代碼可能會拋出其他異常,但即使我使用Exception它們不會被捕獲 – Timby 2011-04-20 12:44:29
myVar可以爲null的唯一方法是如果myParam完全從URL中丟失。你應該檢查使用if語句。使用NULL作爲ID是有效的,直到您試圖將它存儲在非空字段中(引發DML異常),或者嘗試引用ID實例方法之一(引發NPE)。沒有NPE,其他一切都會順利進行。 – mmix 2011-04-20 15:17:58