Почему исключения Python называются «Ошибка»?

Почему исключения Python называются «Ошибка» (например, ZeroDivisionError , ZeroDivisionError , NameError ), а не «Исключение» (например, ZeroDivisionException , NameException , TypeException ).

Я пришел из фона Java и начал изучать Python в последнее время, так как это запутывает, потому что в Java существует различие между ошибками и исключениями.

Есть ли разница в Python или нет?

5 Solutions collect form web for “Почему исключения Python называются «Ошибка»?”

  1. Вы не называете каждый класс «Class» в имени и каждой переменной с именем «_variable». То же имя вы не называете исключением, используя слово «Исключение». Имя должно что-то сказать о значении объекта. «Ошибка» – это значение большинства исключений.

  2. Не все Исключения являются ошибками. SystemExit , KeyboardInterrupt , StopIteration , GeneratorExit – все исключения, а не ошибки. Слово «ошибка» в фактических ошибках показывает разницу.

  3. «Ошибка» короче, чем «Исключение». Чем можно сохранить несколько символов в ширине кода без потери смысла. Это имеет значение.

Я считаю, что это соглашение взято из PEP 8 – Руководство по стилю для кода Python :

Имена исключений

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

В этом отношении Python довольно похож на Java. Но исключение Python следует сравнить с Throwable от Java.

Как Throwables приходят во всех видах ароматов – Error, RuntimeException и (checked) Exception – так же делают Python (хотя и не проверенные исключения).

Что касается языка, ошибка является исключительной, поэтому иерархия наследования не является странной.

Однако мне не очень нравится имя Exception. Исключения используются не только для исключительных обстоятельств (например, мы надеемся, ошибки), но и для того, чтобы просто выйти из потока управления. Потому что это то, что делает Исключение; он выпрыгивает из нормального потока управления в отмеченную точку. Немного похоже на goto, но более утонченный.

Тем не менее, каждый раз, когда у вас есть ситуация, при которой не может быть найдено подходящее возвращаемое значение, вы, как правило, используете исключение. И в Python, и в Java.

В. Почему исключения Python называются «Ошибка»?

Я предполагаю, что это связано с тем, что большинство исключений Python классифицируются как ошибки или предупреждения . Если имена исключений Python должны были закончиться Exception , это различие было бы невозможно.

Примерами предупреждений являются ImportWarning и ImportWarning .

См. Иерархию классов 2.x для встроенных исключений, а также для 3.x.

Это просто название. В Java у вас есть java.lang.Error отличный от других Throwable потому что эти ошибки необходимо снять. В Python все исключения не отмечены, поэтому различие является беспредметным.

Interesting Posts

как проверить DEBUG true / false в шаблоне django – точно в layout.html

Как передать дополнительные аргументы пользовательской функции сортировки python

Как я могу перечислить содержимое каталога в Python?

Оптимизация инициализации в python

Проблема с блокировкой с многопроцессорной обработкой. Пула: ошибка травления

Как назначить значение NULL указателю в python?

Композитный первичный ключ в django

SOAPpy – зарезервированное слово в списке названных параметров

матрица повторной выборки, интерполирующая матрица

Многопроцессы становятся зомбическими процессами при увеличении итераций. В чем преимущество mp.Queue () в Manager.list ()?

Сглаженный список типов

Невозможно предоставить пользователю вход в консоль PyDev на Eclipse с помощью Jython

Как я должен организовать исходный код Python?

Подсказка типа Python 3.5 не приводит к ошибке

понимание того, как импортировать переменные из метода

Python - лучший язык программирования в мире.