Pull to refresh

Comments 5

Небольшой комментарий по обработке ошибок.

Я бы предложил в таких строках
throw new \InvalidArgumentException('URL was expected to be a string');


в случае, если проверяемый параметр не является секретными данными (пользовательский пароль, например), в тексте исключения его включать. Иначе потом увидев в логе сообщение «URL was expected to be a string» не всегда ясно, что именно в тот момент времени было не так. Разумеется, это в том случае, если вы разрабатываете приложение, которое будет более-менее автономно функционировать без программиста, сидящего перед его консолью :)
не обязательно выводить значение (вдруг это какой-то объект с циклическими ссылками?) Просто тип через gettype взять.
Нет, просто взять тип недостаточно. В логе нужно именно значение. Обычно тип объекта и наличие циклических ссылок на этапе разработки известны. В данном конкретном случае это была строка, поэтому ее достаточно было просто вывести как есть. Был бы массив, можно было бы вывести результат json_encode(). Была бы модель Laravel, возможно, достаточно было бы вывести результат работы toJson().
ну давайте так… скоро мы все будем писать вместо этого, как-то так:

function __construct($url : string) {
    // все остальное
}


и в логах у нас будет именно тип, а не значение.
Для меня иметь в логе только тип («string») недостаточно. Я хочу знать, какой вид URL вызвал исключение: «хттп:\\11.12.13» или «ya.ru», чтобы понять, как первый вариант вообще попал в программу и почему второй вызывал именно такое исключение.
Sign up to leave a comment.

Articles