apex类构造函数中的异常

时间:2011-04-18 19:36:58

标签: constructor salesforce apex-code

我一直在尝试在Salesforce自定义顶点类中捕获异常,但似乎不起作用。

在这种情况下,我有一个初始化环境的控制器构造函数,我试图在构造函数中捕获异常,但是不起作用,没有捕获异常。

public MyController(){
  try{
    this.myVar = ApexPages.currentPage().getParameters().get('myParam');
    ....

   }
   catch( System.StringException se ){
     ..
   }
   catch( System.NullPointerException ne ){
     ..
   }
   catch( Exception e ){
     ..
   }
  ....
}

2 个答案:

答案 0 :(得分:1)

同意@mmix。

以下操作永远不会导致任何异常。

ApexPages.currentPage().getParameters().get('myParam');

实际上捕获NPE(NullPointerException)是不好的做法,因为这些是运行时异常,应该检查变量!= null OR variable == null而不是依赖于NPE异常。如果你使用像这样的try catch块,代码流将难以维护和理解。

答案 1 :(得分:0)

这里没有什么可以抓住的

如果在控制器/扩展名

内,

currentPage()不为空 即使参数列表为空,

getParameters()也不为空

get('myParam')可能会也可能不会返回null,但无论该值是否存储在myVar中

只有当你以后尝试引用myVar的实例成员时才会获得System.NullPointerException,即使在数据库中存储null myVar也是有效的。