Python 异常处理

这里提醒各位一句,学习语法的时候,尤其是在各种网站学习的时候一定要实践一下,因为有坑... ...Python的语法与C++相似,但是一定不要以写C++的思维去写Python,因为它们有本质上的区别。Python是一门脚本语言,执行的过程就像bat和sh一样,它是一门脚本语言,而C++是一门编译语言。

举个例子:

def a():

     print “函数a”

     def b():

           print ”函数b”

      b()

a()

这段代码很简单,而且我保证没问题,你在C++里面能这么写吗?

下面讲一下Python的异常处理机制:

Python的异常处理常用的有以下四个关键字

try

except

raise

finally

这又很神似C++,只不过catch被except替换掉了;

Python 所有的异常类型都是继承自一个内置类:Exception

异常有以下几种用法:

一、

最基本的异常处理

try:

    <code>

except Exception:

    <code>

这是最简单的,也是最保险的,只要发生异常我都抓到,但是缺点也很明显,你不知具体类型。


二、

指定具体的错误类型

try:

    <code>

except  RunTimeError: #except 后面加具体的错误类型

    <code>

你也可以选择同时监听多种类型:

 except (RumTimeError, ValueError, NameError...):

     <code>

同时也可以获取异常输出的参数和信息:

except ValueError as e: #异常信息保存在e中,实际上e是ValueError异常类的实例对象

    <code>

except ValueError, e:

    <code>

建议使用第一种方法

三、

自己抛出异常

这里面就要用到raise了,它相当于C++里面的throw;

try:

    raise Exception('fuck', 'bitch', 'shit') #抛出一个异常对象,里面输入的是初始化参数

except Exception as e:

    print e.args

输出结果为:'fuck', 'bitch', 'shit


四、

自定义异常

前面说的都是普通玩家的玩法,下面是rmb玩家的玩法

首先定义一个错误类型NewError

class NewError(Exception): #继承Exception类

    <code>

抛出新异常类型

try:

    raise NewError('fuck', 'bitch', 'shit')

except NewError as e: #捕捉新错误类型

    <code>

这是Python2.7版本的异常管理说明(https://docs.python.org/2/tutorial/errors.html);


结尾再说一点,能不用异常处理就尽量不用,异常处理机制比较耗时,平时可以自己加个入参判断之类的去代替,为什么这么说呢?

大家不信可以自己去验证一下,无论是Python还是C++最后都要转化为汇编,而异常处理转化为汇编后执行的操作要比一个入参判断多很多。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值