📅  最后修改于: 2023-12-03 15:34:27.354000             🧑  作者: Mango
在编写Python代码时,经常会遇到各种错误和异常。这些错误和异常是Python的自我保护机制,可以帮助用户检查和调试不良的代码。本文将介绍Python中的错误和异常,以及如何处理它们。
错误是编写代码过程中发生的语法或语义错误。这种错误可以在代码编写期间立即检测到,也可以在程序运行期间检测到,导致程序无法正常运行。
异常是程序在运行期间发生的错误。这种错误可能是由程序逻辑、输入数据等原因引起的。当程序执行遇到异常时,程序将停止执行并抛出异常信息。
Python异常按照其类型被分类成不同的层次结构。Python 3中的异常层次结构如下:
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
| +-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- FileNotFoundError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
Python内置了各种异常类型,可以根据需要创建自定义异常。如果发生异常,程序会停止执行,并抛出与异常相关的信息。处理异常的正确方法是捕获并处理它们,这将防止程序崩溃并产生更好的用户体验。
捕获异常的语法结构如下:
try:
# 检测异常的代码
except Exception1:
# 处理异常 Exception1
except Exception2:
# 处理异常 Exception2
else:
# 没有异常的代码
finally:
# 无论是否发生异常都执行的代码
以下是关于异常处理的详细解释:
try
:在这一段代码中,我们定义了可能引发异常的代码块。except
:在这一段代码中,我们定义了处理异常的代码块。else
:在这一段代码中,我们定义了没有发生异常时应该执行的代码块。finally
:在这一段代码中,我们定义了无论是否发生异常都应该执行的代码块。以下是一个简单的程序,用来演示异常处理:
try:
text = input('请输入一个整数:')
num = int(text)
print('你输入的数字是:', num)
except ValueError:
print('输入的内容不是数字')
except KeyboardInterrupt:
print('用户终止了程序')
程序的执行顺序是:
除了使用Python内置异常之外,还可以根据需要定义自己的异常,如下所示:
class MyError(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return self.message
try:
raise MyError('我的异常')
except MyError as e:
print(e)
这个程序使用自定义异常类来创建了一个异常对象,并在程序中触发了该异常对象。
Python中的错误和异常是程序编写中不可避免的问题。当错误和异常发生时,它们会提供有用的信息,以帮助我们及时修复我们的代码。为了处理异常,我们可以使用try-except语句,它使我们捕获和处理我们代码中可能出现的异常。除了内置的异常类型之外,我们还可以定义自己的异常,以便使用。