Python中的异常处理和try,except的用法

  在各种编程语言进行工作和学习的过程中,都会有一些错误异常,这些错误则以不同的方式去展现出来,但是也有一些编程语言的错误信息无法直接看到,比如html和css,只能通过页面显示的最终结果来判断是否有错误。Python的错误异常在大部分IDE编辑器中则可以直接显示出来,便于开发人员的调试及修改工作,对初学者也比较友好。
  Python中包含错误和异常两种情况①,错误主要是常见的语法错误SyntaxError,如下图所示,并且在错误提示中会有倒三角箭头的修改指示位置;python中的另外一种错误提醒叫做异常,指的是在语法和表达式上并没有错误,运行时会发生错误的情况。在python中,语法错误是直接显示在相关终端窗口,而异常可以进行错误提示,也可以进行捕捉处理。

Python中的异常处理和try,except的用法_第1张图片

  因为在程序执行时,异常报错提示可能会影响到输出结果的显示,此时就可以使用try:...except:...进行异常处理②,将错误直接输出打印,而不是以报错的形式显示。在python中有很多不同的异常提示方法,官方成为异常类,所有异常类都基于BaseException③。大家也可以在官方文档中查看详细的继承关系图,在一般处理异常的情况下,大多使用Exception与其子类异常,如下图就是使用Exception输出程序执行异常的代码示例。

Python中的异常处理和try,except的用法_第2张图片

  使用Exception下的NameError代码示例:

Python中的异常处理和try,except的用法_第3张图片

  还有一些异常错误信息是模块中自带的错误,比如urllib.error中的HTTPError和URLError,以及json中的JSONDecodeError等。查看底层实现源码可以看出这些异常也是基于Exception,相当于这些模块主动抛出一个自定义的异常信息,所以也是可以通过Exception进行输出。如下图:

Python中的异常处理和try,except的用法_第4张图片

  既然在模块可以从代码中实现主动抛出异常错误信息,那我们也可以根据自己的需求去抛出相应的异常提示信息。这时候就使用到了raise④,代码示例如下,我们可以在raise中添加一个基类,紧挨基类去添加一个关于异常信息的提示,提示内容可以为汉语,但是尽量不要使用。

Python中的异常处理和try,except的用法_第5张图片

  try:...except:...语句还可以结合finally进行使用,无论输出try语句中的正确代码,还是输出except中的错误信息,finally都会进行输出打印输出,代码示例图下图所示。

Python中的异常处理和try,except的用法_第6张图片

  try:...except:..除了可以使用raise抛出异常,和finally进行结合使用,还可以结合else进行使用,else用来返回输出正确信息,但正确内容大多写在try语句中,所以else并不常用;try:...except:..语句也可以根据实际情况添加多个except进行处理不同的异常信息,关于更多的用法,大家还可以通过“百度一下”学习更多内容。
  以上内容主要帮助大家使用try:...except:...处理异常的方法,如果不清楚使用哪一种异常方法,可以使用通用异常Exception,也可以在except中打印自己定义的错误信息。在出现异常的情况下程序有可能会中断执行,而使用异常处理,则可以跳过这些异常继续执行正确的代码;异常处理也可以添加自定义的错误信息,在工作中方便与同事之间的配合,这些都是使用异常处理的好处。
  以下为参考文档,依顺序对应文中数字,建议使用chrome浏览器进行翻译查看,利于理解:
  ①https://docs.python.org/3.6/tutorial/errors.html?highlight=exceptions
  ②https://docs.python.org/3.6/reference/compound_stmts.html#except
  ③https://docs.python.org/3.6/library/exceptions.html
  ④https://docs.python.org/3.6/reference/simple_stmts.html#raise

你可能感兴趣的:(python基础)