Python Try-Except 异常处理指南
Python 中的异常处理是一种用于处理程序出现错误和异常情况的技术。在开发过程中,程序出现错误是一种必然情况,通过合理的异常处理,能够使我们的程序更加稳定和健壮。本文将介绍 Python 中关于异常处理的知识点。
异常概述
异常是指在程序运行时发生的错误,例如访问不存在的变量、除数为零、调用不存在的方法等。当异常出现时,程序就会停止运行并抛出异常。Python 中提供了简便的处理异常的代码框架,即 try 和 except 语句。
try-except 语句
Python 中 try-except 语句的基本结构如下:
try:
# 尝试执行的代码块
except ExceptionType:
# 发现指定类型异常时执行的代码块
try 语句块中执行某个任务时,如果发生了预设范围内的异常,程序就跳入 except 代码块,进行相应的处理。
以下是 try-except 的示例:
try:
a = 100 / 0
except ZeroDivisionError:
print("除数为零")
以上代码中,程序会尝试除以 0,这时就会引发一个 ZeroDivisionError 异常,程序就会跳入 except 代码块,输出“除数为零”这条信息。
可以用来处理的异常类型很多,例如 NameError、TypeError、ValueError、FileNotFoundError 等。可以使用 except Exception 代替指定的单个异常类型,当发生任意一种异常时,就跳入 except 代码块。
try-except-else 语句
当使用 try-except 语句时,有时可能希望在没有发生错误时执行某个代码块,可以使用 try-except-else 来实现:
try:
# 尝试执行的代码块
except ExceptionType:
# 发现指定类型异常时执行的代码块
else:
# 没有发生异常时执行的代码块
以下是 try-except-else 的示例:
try:
a = 3
b = 2
c = a + b
except:
print("发生了一个异常")
else:
print("没有发生异常")
程序中 a 和 b 可以成功相加,所以不会跳入 except 代码块。于是程序会执行 else 代码块中的内容,“没有发生异常”就会输出。
try-except-finally 语句
有时候无论程序是否出现异常,都需要执行一段代码,try-except-finally 就可以做到这一点:
try:
# 尝试执行的代码块
except ExceptionType:
# 发布指定类型异常时执行的代码块
finally:
# 最后一定要执行的代码块
以下是 try-except-finally 的示例:
try:
a = 8
b = 2
c = a / b
except:
print("发生了一个异常")
finally:
print("完成异常处理")
程序中 a 和 b 可以成功相加,所以不会跳入 except 代码块。无论是否出现异常,finally 代码块都会被执行,输出“完成异常处理”。
自定义异常
在 Python 中,我们可以自己定义一些异常类型,来适应程序中的一些特定问题。自定义异常需要从 BaseException 类或者其子类中继承。以下是自定义异常的代码示例:
class MyException(Exception):
def __init__(self, message):
Exception.__init__(self)
self.message = message
try:
raise MyException("自己的异常类型")
except MyException as e:
print(e.message)
以上代码中,MyException 类继承 Exception,自定义了一个名为 message 的属性,用于存储异常信息。使用 raise 语句抛出 MyException 类型异常,最终得到的结果就是打印出 message 中的“自己的异常类型”。
小结
Python 中的异常处理能够帮助我们处理那些在编写程序过程中出现的问题。使用 try-except-else 或 try-except-finally 等语句,可以帮助我们更好地管理异常。自定义异常可以让我们针对程序中的不同问题达到更好的解决效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python try 异常处理(史上最全) - Python技术站