Python 3.8.3
Intellij IDEA ultimate 2018.1
语法错误: 发生于代码解析时,对于大多数开发平台如IDEA,都会非常及时的发现,平台一般会以红色下滑线等醒目的标志提醒用户,如下图所示。
解决语法错误的方式可以是根据个人经验知识进行修改,或者可以使用开发工具自带的校验修复功能进行提示修改,如下图中IDEA进行了提示。
异常: 发生于程序运行期时产生的错误,被称作异常,这些异常大多数不会被程序主动处理,以错误信息的形式进行展示。如下图所示程序,运行程序,如果发生异常则程序终止,并且会在后台日志记录展示。
处理异常的方式有两种,同java中异常处理,第一种是进行捕获,只是Python中使用的是try配合except语句,如下图所示。
可以对异常信息进行打印,如下图所示,将错误对象赋值给变量error,结合print方法即可打印出异常信息。
try,except搭配else使用,else子句放于except后,表示没有发生异常时运行else子句程序。如下图所示:
搭配finally使用时,表示程序最后一定运行的部分内容,如下图所示。
当然,很多时候,我们不能预知可能发生的异常,因此except后无法写入固定的异常类型,因此,在不写异常类型的情况下,结合sys.exc_info()方法直接打印发生的异常。
处理异常的第二种方法,也是和java中类似,Python中使用raise抛出异常,在该方法中不处理,而是抛给调用方。
总结: 同java中处理异常的方法,Python中也用了类似的方式进行处理;总的来说,异常要么捕获立马处理要么抛出让上层调用者处理,无论怎样,出现的异常都需要妥善处理完成,否则可能影响程序质量。
抛出raise方法使用的时候,也可以指定特定类型异常进行抛出,如raise TypeError。
使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到的、而except又没有捕获的异常。