关于抛出错误的一个问题
Topic source有些错误出错了,对程序没什么影响,继续执行就执行吧。
但是也有一些错误,一旦出错就应该让程序停掉。 第二种,将错误继续往上抛就是为了让调用者必须处理这个错误。
比如: 程序先获取一个 key ,然后用 key 去重复获取一些数据; 不知道什么原因,key 为空了,如果程序继续执行,那显然是在 空跑。因为把异常捕获了之后还让它继续执行了,所以这种情况,就必须让使用者去处理这个异常。(当发现这个异常,可以再重新获取一遍key)
- 1
有些错误出错了,对程序没什么影响,继续执行就执行吧。
但是也有一些错误,一旦出错就应该让程序停掉。 第二种,将错误继续往上抛就是为了让调用者必须处理这个错误。
比如: 程序先获取一个 key ,然后用 key 去重复获取一些数据; 不知道什么原因,key 为空了,如果程序继续执行,那显然是在 空跑。因为把异常捕获了之后还让它继续执行了,所以这种情况,就必须让使用者去处理这个异常。(当发现这个异常,可以再重新获取一遍key)
迷茫的老九
在这节的结尾提到了先捕获错误,再抛出错误,让顶层调用者去处理,其实这里我觉得跟记录错误没什么不同,都是先捕获一个错误然后记录,然后再让Python解释器来打印出错误堆栈。注意,这跟直接让python解释器打印错误堆栈不同,使用logging方法可以让程序继续运行下去
可以看到程序出错之后继续打印出了'END'.但是结尾处提到的捕获错误再抛出错误并不能让程序继续执行下去
显然,通过这种方法并不能让程序继续运行,而logging方法正是弥补了这一点,先记录错误,再打印错误堆栈,然后程序还能运行下去!那么问题来了,直接用logging不就好了吗?最后一种抛出错误的方法意义在哪里呢?小白一枚,望大神解答!