Исключения в конструкторе класса Apex - PullRequest
1 голос
/ 18 апреля 2011

Я пытался поймать исключение в пользовательском апекс-классе Salesforce, но, похоже, не работает.

В этом случае у меня есть конструктор контроллера, который инициализирует среду, и я пытаюсь перехватить исключения в конструкторе, но не работает, исключение не перехватывается.

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

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

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Согласовано с @ mmix.

Следующая операция никогда не приведет ни к какому исключению.

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

На самом деле перехват NPE (NullPointerException) является плохой практикой, так как это исключения времени выполнения, и нужно проверять наличие переменной! = Null OR variable == null вместо зависимости от исключений NPE. Поток кода будет слишком сложен для поддержки и понимания, если вы будете использовать блоки типа try catch.

0 голосов
/ 19 апреля 2011

Здесь нечего ловить

currentPage() не равно нулю, если внутри контроллера / расширения

getParameters() не равно нулю, даже если список параметров пуст

get('myParam') может возвращать или не возвращать ноль, но независимо от того, что значение будет сохранено в myVar

, только если вы позже попытаетесь обратиться к членам экземпляра myVar, вы получите System.NullPointerException, даже если сохранить нулевой myVar в базе данныхдействительный.

...