Почему исключения 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 все исключения не отмечены, поэтому различие является беспредметным.

  • Пожалуйста, обсудите, что и зачем использовать портлеты
  • Пространства имен в C # vs import в Java и Python
  • Как использовать кеш файловой системы в Java или Python?
  • Почему мое окно Swing продолжает закрываться через несколько секунд?
  • Python в разработке настольных приложений
  • Popen общается против Popen stdin.write ()
  • Выполнение программ Java через Python
  • Как включить тестовые библиотеки Java в платформу Robot на основе Python
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.