2013-09-18 8 views
-1

У меня есть такой метод: Должны ли исключения содержать динамические данные?

public function someMethod($param1 = null, $param2 = null) 
{ 
    ... 
    if ($param1 == null &&...) 
    { 
     throw new Exception("Some parameter is wrong", 601); 
    } 
} 

Это хорошая практика, чтобы включить динамические данные в Exception сообща, так как у меня есть код исключения? Например, исключение может выглядеть следующим образом:

throw new Exception("First parameter is wrong. You passed: {$param1}", 601); 

Каково ваше мнение, это ОКЕЙ сообщение должны быть динамичными, или я должен придерживаться фиксированного текста для исключения сообщений?

+3

Бросать исключение никогда не бывает хорошо. Вы должны создать другой настраиваемый класс исключений, расширяющий Exception. В зависимости от проблемы вы можете создать другое исключение. – Muctadir

+3

Это действительный пункт. Я использую пользовательские исключения, я просто упростил этот пример. – sensor

+1

Просто скажите, что 'param1' ошибается и почему это неправильно, не передавайте значение параметра, потому что оно может содержать конфиденциальные данные. –

ответ

1

Должны ли исключения содержать динамические данные?

Должно ли? Нет, но они могут! но убедитесь, что «генерация» этих динамических данных не вызовет другого исключения.

Но вы никогда не должны throw new Exception(). Расширьте его для собственных пользовательских исключений или используйте исключения javas, например IllegalArgumentException

Смежные вопросы