Python 【错误处理】

Python 【错误处理】

Python的错误有语法错误与运行错误。语法错误称为解析错,软件中的语法分析器会在编译时标出语法错误。运行时检测到的错误称为异常。程序遇到异常就会停止执行,然后将异常打印出来,导致后面的正确代码也无法执行。Pyhton中常见的异常有:0作为除数、未知变量..字符出现在算数式中。

 

(而在java中除以浮点数0.0是允许的,得到正无穷infinity。

 

1.处理异常的几种方式:

(1) try-except-finally自身处理  

 

try:

  .....

except Exception as 别名:

  .....

finally:

  .....

        首先进入try执行。若try中的代码正确,执行完try后进入finally执行。若try中的语句错误,则不执行try,进入except中执行代码,最后进入finally执行。无论有没有异常,finally语句块都会执行。

 ①except中的代码称为“异常处理程序”。

②可以有多个并列except来捕捉可能出现的多个异常,但是最多只有一个异常会被处理

 

 

③Exception是所有异常的父类,使用以下的代码就会输出异常的描述信息。

except Exception as e

  print(e)                   

 

 

 

 

 

(2)raise 抛出由调用者处理

raise出现于except语句中。如果try中的语句出现错误,程序进入except中执行代码raise,将异常抛出给用户看,fianlly也会执行。

 

2.用户自定义异常

 异常本质是类,用户自定义异常类就是定义一个类。

class MyError(Exception):

  def __init__(self,msg):

    self.msg=msg

  def __str__(self):

    return self.msg

 

   

  和java中的自定义异常类一样,用户自定义异常只需要定义三个东西:变量、构造函数、输出变量函数。这个变量一般是描述异常信息的字符串msg,返回msg即可输出异常信息。

 

 

 

 

from math import sqrt

def area(a,b,c):
if a<=0 or b<=0 or c<=0:
mye=MyError("三角形三边长应该>0")
raise mye
if a+b <=c or b+c<=a or a+c<=b:
mye=MyError("三角形任意两边之和应该>第三边")
raise mye

t=(a+b+c)/2
t=t*(t-a)*(t-b)*(t-c)
return sqrt(t)

class MyError (Exception):
def __init__(self,msg):
self.msg=msg
def __str__(self):
return self.msg

if __name__=="__main__":
try:
print(area(3,1,5))
except Exception as e:
print(e)

 

posted @ 2019-04-09 15:51 versionk 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值