Оптимизация
Не повторяйте одну и ту же ошибку в вашем коде снова и снова.
Создайте функцию с ней и вызывайте её каждый раз, когда понадобится.
Не повторяйте одну и ту же ошибку в вашем коде снова и снова.
Создайте функцию с ней и вызывайте её каждый раз, когда понадобится.
Вы не поверите, но я сегодня так и сделал. Считывал значение внутренней переменной объекта, но жуть состоит в том, что если переменная вдруг не задана, то попытка ее считывания вываливается с ошибкой. В итоге в функции SafeReadVar я пытаюсь считать значение, перехватываю ошибку и если она есть, то возвращаю null.
Ну если нет возможности задать переменной значение по умолчанию ваш вариант годный, я б тоже так сделала
Да проблема в специфике самого объекта, что он с ошибкой вываливается, хотя мог бы null возвращать.
Вариантов нет, он создаётся, в обработчике задаю значение переменной. Но если вдруг event создания не отработал (сложная архитектура, всякое бывает), то всё.
костыль обыкновенный. Да, так делать не стоит если пишешь с 0, badcode. Но если нет возможности поменять вызываемый метод/функцию/процедуру, то просто пилишь эксепшен вот и все.
Во во, что за класс такой, который позволяет доступ к неинициализированной переменной, и у которого нет перехвата на такой случай исключения.
Здесь хорошо бы знать, это стандартная библиотека(маловероятно) или сторонняя(самописная). И если это самопис, то может имеет смысл переписать его, а не клепать море костылей?
Не очень понял. Глобальный перехватчик ошибок что ли? Так и других ошибок хватает с собственными обработчиками.
а почему бы изначально не поставить проверки на null в местах предположительного их возникновения?
Эээ. Я это и сделал, но обернул в функцию, чтобы не писать одинаковый код во всех местах считывания переменной.
IT-юмор
5.6K поста52.5K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору