python异常处理---读书笔记(1)

 初学python ,  基本不知道什么是异常, 不过有个东东,可以理解,比如。
<span style="font-family: Arial, Helvetica, sans-serif;">int("hello world")</span>
会出现 ValueError ,  这就是异常, 因为你知道int方法是用于数字对, 我不知道其他程序怎么样。但是这个也许在编程中特别重要吧,因为不希望有错误了,程序就不能运转吧。


 异常通常有几个:


 valueError : 不存在值引发的异常

indexError:    越界引发的异常

TabError:   缩进引发的异常

syntaxError: 语法错误

  这里有详细说明:http://www.w3cschool.cc/python/python-exceptions.html


 通常用于异常的语句有:

try:
 int(s)
expect ValueError:
  return None


 看上去try ,except 像 if ...  else的节奏

          try:

                  你的代码(可能会导致一个运行的错误)

         except:

       错误恢复代码



  但是:ValueError 又是什么呢?

     python 特别把异常做了对象, 这个对象就是Exception ,通常我们的python是自带了这个程序,所以ValueError就是调用Exception模块。


     我在阅读, <learn python the hard way> 中  读到了raise语句,  书中也没有介绍,百度了一下,下面是这么说的。

      

     

raise语法格式如下:

raise [Exception [, args [, traceback]]]

语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是"None"。

最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。


      在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称。异常名称标识出具体的类:

     

     以上的解释, 还是无法看懂raise到底是撒意思, 看了书中的例子,似乎是用户自定义异常,接着看。

      深入理解,异常:

        如:  print 1 

                print x 

             traceback: X  

              NameError : x is not defined

       于是可以:

             try:

 print x   

     except NameError:

print("没有定义输入x")

     

         先深入了解,try except 是做什么的?

          怎么理解,raise呢?

           >>> raise IndexError
           Traceback (most recent call last):
            File "<pyshell#9>", line 1, in <module>
            raise IndexError
           IndexError
         >>> raise NameError
           Traceback (most recent call last):
           File "<pyshell#10>", line 1, in <module>
             raise NameError
            NameError

               抛出异常, 第一个抛出IndexError  ,返回见上面, 还是不好理解,继续看:

                 class  MyException(Exception):

  pass

 try:

  raise MyException

except MyException:

print("ok:)

             显示ok ,自定义了一个异常MyException ,  可以加点料

      

      class MyException(Exception):
          pass

      try:
         raise MyException , " and some addtional data"
      except MyException,data:
        print("OK")
        print(data)

          显示 ok, and some addtional data

 
        发现之前介绍的raise 了,  继续看书,回坑填一下

   

   

     备注:Exception 英文,是例外的意思。






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值