【人生苦短,我学 Python】进阶篇——异常处理(Day16)

写在前面:大家好!我是【AI 菌】。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与记录。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github

-> 前往【人生苦短,我学 Python】总目录 <-

一、错误与异常

(1) 语法错误

  • 语法错误是指程序员在编写代码时违反了编程语言的语法规则,导致代码不能被正确解析。这种错误通常会在代码编译或解释时被发现,并且需要修复才能使代码运行。

(2) 程序异常

  • 程序异常则是指程序运行过程中出现的错误,可能是由于输入值不合法、系统资源不足、算法逻辑错误等原因导致的。这种错误通常会在程序运行时被捕获并且需要相应的处理才能使程序继续执行。

二、异常处理

(1) try-except

发生任何异常,都可进入except:

try:
    正常的操作
    ......................
except:
    发生任何异常,执行这块代码
    ......................

发生指定类型的异常,可进入except:

try:
    正常的操作
    ......................
except(Exception1[, Exception2[,...ExceptionN]]):
    发生以上多个异常中的一个,执行这块代码
    ......................

(2) try-except-else

发生任何异常,都可进入except:

try:
    正常的操作
    ......................
except:
    发生异常,执行这块代码
    ......................
else:
    如果没有异常执行这块代码
    ......................

发生指定类型的异常,可进入except:

try:
    正常的操作
    ......................
except(Exception1[, Exception2[,...ExceptionN]]):
    发生以上多个异常中的一个,执行这块代码
    ......................
else:
    如果没有异常执行这块代码
    ......................

发生指定类型的异常,可进入指定except:

try:
    正常的操作
    ......................
except Exception1:
    当发生异常1,执行这块代码
    ......................
except Exception2:
    当发生异常2,执行这块代码
    ......................
else:
    如果没有异常执行这块代码
    ......................

(3) try-finally

try:
    正常的操作
    ......................
finally:
    退出try时总会执行
    ......................

三、捕获记录异常

  • 捕获程序发生的异常,并写入文件中catch_error.txt:
import traceback

out_fd_error = open("./catch_error.txt", "w")
try:
	正常的操作
except Exception as e:
	out_fd_error.write(traceback.format_exc() + "\n")

四、用户自定义异常

在 Python 中,可以通过自定义异常来提高代码的可读性和可维护性。自定义异常允许你根据特定场景或需求来创建专门的异常类型,并在程序中捕获和处理这些异常。

以下是一个自定义异常的示例:

python
class MyException(Exception):
    def __init__(self, message):
        self.message = message

try:
    x = 10 / 0
except ZeroDivisionError:
    raise MyException("除数不能为零")

在这个例子中,我们定义了一个名为MyException的自定义异常类,并添加了一个__init__()方法来设置异常消息。然后,在程序中使用try-except语句捕获一个除数为零的异常,并将其转换为我们自定义的异常类型并抛出。

当捕获到MyException异常时,程序将打印出我们指定的错误消息:“除数不能为零”。

自定义异常可以大大提高代码的可读性和可维护性,特别是在复杂的应用程序中。它们帮助您更好地管理程序中的错误处理,并使得问题定位和问题修复更加容易。


-> 回到【人生苦短,我学 Python】总目录 <-

在这里插入图片描述
由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!

猜你喜欢

转载自blog.csdn.net/wjinjie/article/details/113919444