Оптимизация

Оптимизация Профессиональный юмор, Код, Разработка, Ошибка, Совет

Не повторяйте одну и ту же ошибку в вашем коде снова и снова.


Создайте функцию с ней и вызывайте её каждый раз, когда понадобится.

IT-юмор

5.6K поста52.5K подписчиков

Добавить пост

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
16
Автор поста оценил этот комментарий

Вы не поверите, но я сегодня так и сделал. Считывал значение внутренней переменной объекта, но жуть состоит в том, что если переменная вдруг не задана, то попытка ее считывания вываливается с ошибкой. В итоге в функции SafeReadVar я пытаюсь считать значение, перехватываю ошибку и если она есть, то возвращаю null.

раскрыть ветку (14)
8
Автор поста оценил этот комментарий

Ну если нет возможности задать переменной значение по умолчанию ваш вариант годный, я б тоже так сделала

раскрыть ветку (6)
2
Автор поста оценил этот комментарий

Да проблема в специфике самого объекта, что он с ошибкой вываливается, хотя мог бы null возвращать.

Вариантов нет, он создаётся, в обработчике задаю значение переменной. Но если вдруг event создания не отработал (сложная архитектура, всякое бывает), то всё.

раскрыть ветку (5)
3
Автор поста оценил этот комментарий

костыль обыкновенный. Да, так делать не стоит если пишешь с 0, badcode. Но если нет возможности поменять вызываемый метод/функцию/процедуру, то просто пилишь эксепшен вот и все.

раскрыть ветку (2)
5
Автор поста оценил этот комментарий

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

Здесь хорошо бы знать, это стандартная библиотека(маловероятно) или сторонняя(самописная). И если это самопис, то может имеет смысл переписать его, а не клепать море костылей?

Автор поста оценил этот комментарий

Не очень понял. Глобальный перехватчик ошибок что ли? Так и других ошибок хватает с собственными обработчиками.

1
DELETED
Автор поста оценил этот комментарий

а почему бы изначально не поставить проверки на null в местах предположительного их возникновения?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

2
Автор поста оценил этот комментарий

try-catch выручает.

раскрыть ветку (4)
Автор поста оценил этот комментарий

Угу. Так и заворачивают ошибку в функцию.

Автор поста оценил этот комментарий
Да без него вообще мало чего пишется)
раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Гугл пишет все без try-catch
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Потому что он пишет на питоне, а там - try except?

2
Автор поста оценил этот комментарий
А какие-то геттеры для этого не предназначены у класса? Которые это умеют корректно обрабатывать? Или вы в геттере и делали затычку?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Не, язык древний. Геттера как в питоне нет, приходится его самому писать.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку