zoukankan      html  css  js  c++  java
  • About try...expect...else

    From https://www.cnblogs.com/Lival/p/6203111.html

    1. 我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except

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

    3.  处理一组异常可以这样写(其中e代表异常的实例):

    a=10
    b=0
    try:
        c = b/ a
        print c
    except (IOError ,ZeroDivisionError),e:
        print e
    else:
        print "no error"
    print "done" 
    

       一个异常可以带上参数,可作为输出的异常信息参数。

       你可以通过except语句来捕获异常的参数,如下所示:

    try:
        正常的操作
       ......................
    except ExceptionType, Argument:
        你可以在这输出 Argument 的值...

    4.   raise 引发一个异常

      

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

    5. try ...finally 

        -   无论异常是否发生,在程序结束前,finally中的语句都会被执行。

        -   finally语句也可以和except语句一起使用。

    a=10
    b=0
    try:
        print a/b
    except:
        print "error"
    finally:
        print "always excute"
    
     
    6. 自定义一个MyException类,继承Exception。如果输入的数字小于10,就引发一个MyException异常:
         
    class MyException(Exception):
        def __init__(self,message):
            Exception.__init__(self)
            self.message=message
    
    a=input("please input a num:")
    if a<10:
        try:
            raise MyException("my excepition is raised ")
        except MyException,e:
            print e.message
    

    Below is another example:

    通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

    以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。

    在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。

    class Networkerror(RuntimeError):
        def __init__(self, arg):
            self.args = arg

    在你定义以上类后,你可以触发该异常,如下所示:

    try:
        raise Networkerror("Bad hostname")
    except Networkerror,e:
        print e.args
  • 相关阅读:
    apache的httpclient进行http的交互处理
    Java 基础篇之反射
    死磕 java线程系列之创建线程的8种方式
    Spring Boot(三) 使用Lombok
    Spring Boot (七): Mybatis极简配置
    Spring Boot Thymeleaf 实现国际化
    微项目:一步一步带你使用SpringBoot入门(二)
    SSM框架手动实现分页逻辑(非PageHelper)
    Java 基础篇之集合
    一起来学Java注解(Annotation)
  • 原文地址:https://www.cnblogs.com/morganh/p/8126470.html
Copyright © 2011-2022 走看看