在日常的学习Python
过程中,由于本身的编程水平受限,时不时的给我抛出一个异常让我真的很难受;在学习的过程中发现Python
中的错误分为语法错误和异常两种。
1、语法错误
Python
中的语法错误通常是最为明显的错误了,由于不按照要求书写代码,往往就容易出现语法错误
示例代码:
>>> print("hello world) File "<stdin>", line 1 print("hello world) ^ SyntaxError: EOL while scanning string literal >>> while True print("hello world") File "<stdin>", line 1 while True print("hello world") ^ SyntaxError: invalid syntax
Python
的语法解释器会找出最先出现错误的位置,并在其下面标记一个小小的箭头
2、异常
什么是异常?异常就是一个事件,该事件会在程序的运行过程中发生,影响程序的正常执行;因为Python
中万物皆对象,所以异常也是一个对象,就表示一个错误;一般情况下即使Python
语法是正确的,在运行它的时候,也有可能发生错误,运行期检测到的错误被称为异常。
示例:
>>> print(1 / 0) # 0 不能作为除数,触发异常 Traceback (most recent call last): File "<stdin<strong style="color:transparent">本文来源gaodai#ma#com搞@@代~&码网^</strong>>", line 1, in <module> ZeroDivisionError: division by zero >>> print(my_name) # # my_name 未定义,触发异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'my_name' is not defined >>> print("5" + 5) # # int 不能与 str 相加,触发异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate str (not "int") to str
不同的异常就会提示不同的错误信息,错误信息的前面部分显示了异常发生的上下文,并以调用栈的形式显示具体信息。
3、异常处理
当Python
脚本发生异常时我们没有及时捕获处理它,程序会终止执行。python
中使用try/except
语句就可以很好的来处理异常。
示例代码:
try: print(my_name) # 没有定义my_nama变量,就会发生异常 print("我是正常执行的结果") # 如果程序正常就会执行此代码 except NameError: print("如果发生异常,就会执行我") # 如果发生错误就会执行此段代码
执行流程: