问题描述
|
我一直试图在Salesforce自定义顶点类中捕获异常,但似乎不起作用。
在这种情况下,我有一个初始化环境的控制器构造函数,我试图在构造函数中捕获异常,但不起作用,无法捕获异常。
public MyController(){
try{
this.myVar = ApexPages.currentPage().getParameters().get(\'myParam\');
....
}
catch( System.StringException se ){
..
}
catch( System.NullPointerException ne ){
..
}
catch( Exception e ){
..
}
....
}
解决方法
同意@mmix。
后续操作永远不会导致任何异常。
ApexPages.currentPage().getParameters().get(\'myParam\');
实际上,捕获NPE(NullPointerException)是不好的做法,因为它们是运行时异常,因此应该检查变量!= null或变量== null而不是依赖于NPE异常。如果您使用这样的try catch块,那么代码流将很难维护和理解。,这里没什么可抓的
如果在控制器/扩展内部,则currentPage()
不为空
即使参数列表为空,3ѭ也不为空
get(\'myParam\')
可能会或可能不会返回null,但无论该值是否存储在myVar中
仅当您以后尝试引用myVar的实例成员时,您才会得到System.NullPointerException
,即使将null myVar存储在数据库中也是有效的。