zoukankan      html  css  js  c++  java
  • try,raise等的python的使用方法介绍

    开始看代码了,靠自己那点小基础是远远不够的,下面整理了一些与我而言的新的知识点。

    参考资料:

    【1】(Python)异常处理try...except、raise——我是爱哭鬼  传送门

    [1]

    正常写代码时会遇到错误,导致错误之后代码无法继续(错了为啥还要继续……界面友好呗,别让别人用着用着崩溃了……)。所以提出了try...except(这个java的tyy...catch很像)。一个try至少带一个except(或finally,见下一个),except负责处理异常,可以处理一个或多个,多个可以用括号括起来,逗号分隔,或者不写表示处理所有。

    1 try2     pass
    3 except (IOError ,ZeroDivisionError),e:
    4     print e
    5 #这里面就是处理了两个异常,另外,那个e前需要一个逗号哟

    try ....except...else 语句,当没有异常发生时,else中的语句将会被执行。

    例子:

     1 a=10
     2 b=0
     3 try:
     4     c = b/ a
     5     print c
     6 except (IOError ,ZeroDivisionError),x:
     7     print x
     8 else:
     9     print "no error"
    10 print "done"

    运行结果:

    0

    no error

    done

     *************

    另外,try也可以和finally连用,包括try...except...finally也是可以的,这个和JAVA一样,无论结果如何都会执行finally内的代码。

    *************

    raise也可以抛出异常,它是“引发一个异常”(引发?是不是说其实不一定真的有异常,但可以强制抛出来一个?)

    例子:如果输入的数据不是整数,则引发一个ValueError

    1 inputValue=input("please input a int data :")
    2 if type(inputValue)!=type(1):
    3     raise ValueError
    4 else:
    5     print inputValue

    假设输入1.2,运行结果为:

    please input a int data :1.2
    Traceback (most recent call last):
    File "C:/Users/lirong/PycharmProjects/untitled/openfile.py", line 3, in <module>
    raise ValueError
    ValueError

    如果输入1,运行结果为:

    please input a int data :1
    1

    *********

    最后呢,还可以自己自定义异常(重点是格式):

    自定义一个MyException类,继承Exception。

    1 class MyException(Exception):
    2     def __init__(self,message):
    3         Exception.__init__(self)
    4         self.message=message 

    如果输入的数字小于10,就引发一个MyException异常:

    1 a=input("please input a num:")
    2 if a<10:
    3     try:
    4         raise MyException("my excepition is raised ")
    5     except MyException,e:
    6         print e.message

     

    运行结果:

    please input a num:1
    my excepition is raised

     

  • 相关阅读:
    Automatic overvoltage protection
    IDA Pro Disassembler 6.8.15.413 (Windows, Linux, Mac)
    J-Link GDB Server Command
    emSecure Use Digital Signatures to protect your products
    画时序图工具TimingDesigner 9.2 安装指导
    增益 Gain 分贝 dB
    How determine the RC time constant in PWM DAC low-pass filter?
    DAC Essentials
    Voltage Level-Shifter Output Waveform
    线性稳压器的基本类型
  • 原文地址:https://www.cnblogs.com/6luv-ml/p/7489780.html
Copyright © 2011-2022 走看看