предупреждение pylint на 'кроме Исключения':

Вы можете использовать popup.setHeight() для установки желаемой высоты.

Вы также можете использовать popup.showAsDropdown(), чтобы получить больше контроля над тем, где появляется всплывающее окно. Например, я хотел, чтобы мой появился в определенной позиции относительно enterPhoneNumberButton:

int xOffset = popupWidthInDP > enterPhoneNumberButton.getWidth() ? 0 : enterPhoneNumberButton.getWidth() / 2 - dpToPx(popupWidthInDP / 2);
popup.showAsDropDown(enterPhoneNumberButton, xOffset, -enterPhoneNumberButton.getHeight() - dpToPx(popupHeightInDP));
19
задан yanchenko 16 April 2009 в 13:42
поделиться

5 ответов

Хорошей практикой считается обычно не перехватывать корневой объект Exception, а не перехватывать более конкретные - например, IOException.

Рассмотрим, является ли исключение нехваткой памяти произошло - просто использование «pass» не приведет к тому, что ваша программа останется в хорошем состоянии.

Практически единственный раз, когда вы должны ловить Exception, находится на верхнем уровне вашей программы, где вы можете (попытаться) зарегистрировать ее , отобразить ошибку,

26
ответ дан 30 November 2019 в 02:48
поделиться

потому что думает, что ты слишком много ловишь. и это правильно.

2
ответ дан 30 November 2019 в 02:48
поделиться

Исключения возникают, когда происходит что-то ... исключительное. Как правило, хорошо, что программа завершается.

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

1
ответ дан 30 November 2019 в 02:48
поделиться

Catching Exception (without re-raising) has 2 really bad side effects: errors get eaten, so you lose the stack trace, but also that ctrl-c (or whatever the break key is on your operating system) also gets handled here.

The typical behavior of programs like this is that either they can't be stopped, or that ctrl-c causes the control flow to skip forward (to the exception handler), and then continue. Then either the code can't be interrupted, or you need to hammer on ctrl-c to get it to stop.

-1
ответ дан 30 November 2019 в 02:48
поделиться

Хорошая практика - ловить только очень узкий диапазон типов. «Исключение» является слишком общим - вы в конечном итоге поймаете не только ошибки, которые вы запланировали, но и другие ошибки, которые могут замаскировать ошибки в вашем коде, которые можно было бы быстрее диагностировать, если бы они не были обнаружены вообще, или, возможно, лучше обрабатывать один обработчик исключений очень высокого уровня.

Сказав, что, начиная с Python2.6, перехват исключений стал намного более разумным, потому что все исключения, которые вы не хотели бы перехватывать (SystemExit, KeyboardInterrupt ) больше не наследуются от Exception. Вместо этого они наследуют от общего BaseException. Это было сделано намеренно, чтобы сделать перехват Exception относительно безвредным, поскольку это такая распространенная идиома.

См. PEP 3110 для получения подробной информации и

18
ответ дан 30 November 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: