顶点类构造函数中的异常

问题描述

| 我一直试图在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存储在数据库中也是有效的。