python try catch 所有异常_python错误处理—try…catch…finally、调用栈分析

  • Post author:
  • Post category:python


高级语言包括python一般都内置了一套try…catch…finally的错误处理机制:

>>> try:

…print(‘try…’)

… r= 10 /0

…print(‘result:’, r)

…exceptZeroDivisionError as e:

…print(‘except:’, e)

…finally:

…print(‘finally…’)

…try…except: division by zerofinally…

如果认为某些代码可能会出错,可以用try来运行这段代码;

如果try的代码块出现错误,则try代码省下的代码不会继续执行,而是直接跳转到catch代码块,catch就是错误处理代码块(如果没有错误,则不执行)

如果还有finally代码块,则执行finally代码块。没有则不执行

我们看到代码执行 10 / 0 的时候出现了错误(0不能作为除数),下面测试没有错误的情况

>>> try:

…print(‘try……’)

… r= 10 / 2…print(‘结果:%s’ %r)

…exceptZeroDivisionError as e:

…print(‘发生了异常:’,e)

…finally:

…print(‘最后执行……’)

…try……

结果:5.0最后执行……

如果try代码块可能出现多种错误类型,可以编写多个except代码块来处理;此外,如果没有发生错误,还可以在except代码块后面加上else语句,当没有错误的时候,会自动执行else语句:

>>> try:

…print(‘开始:’)

… r= 10 / int(‘2’)

…print(‘结果:’,r)

…exceptValueError as e:

…print(‘ValueError:’,e)

<