zoukankan      html  css  js  c++  java
  • Python合集之异常(二)

    1.Try...except...else

    在Python中,还有另外一种异常处理结构,他是try...except...else语句,也就是在原来try...except语句的基础上在添加一个else子句,用于指定当try语句块中没有发现异常时要执行的语句块。该语句块中的内容当try语句中发现异常时,将不被执行。

    例如:

    def division():
        '''功能:分苹果'''
        print("=========分苹果=========")
        Apple=int(input("请输入苹果的个数:"))
        children=int(input()"请输入来了几个小朋友:")
        result=apple // children
        remain=apple - result * children
        if remain > 0:
            print(apple,"个苹果,平均分给",children,"个朋友,每人分",result,"个,剩下",remain,"")
        elseprint(apple,"个苹果,平均分给",children,"个朋友,每人分",result,"")
    if __name__=="main":
        try :
            division()
        except ZeroDivisionError:
            print("苹果不能被0个小朋友分")
     except ValueError as e:
       print("输入错误:",e)
        else:
            print("分苹果顺利完成")

    2.try...except...finally语句

    完整的异常处理语句应该在包含finally代码块,通常情况下,无论程序中有无异常产生,finally代码块中的代码都会被执行。其语法格式如下:

    try:
        block1
    except [ExceptionName[as alias]]:
        block2
    finally:
        block3

    对于 try...except...finally 语句的理解并不复杂,他只是比try...except 语句多了一个finally 语句,如果程序中有一些在任何情形中都必须执行的代码,那么他就可以将他们放在finally代码块中。

    注:使用except子句是为了允许处理异常,无论是否引发了异常,使用finally子句都可以执行清理代码,如果分配了有限的资源,则应该将释放这些资源的代码放置在finally代码块中。

    例如:

    def division():
        '''功能:分苹果'''
        print("=========分苹果=========")
        Apple=int(input("请输入苹果的个数:"))
        children=int(input()"请输入来了几个小朋友:")
        result=apple // children
        remain=apple - result * children
        if remain > 0:
            print(apple,"个苹果,平均分给",children,"个朋友,每人分",result,"个,剩下",remain,"")
        elseprint(apple,"个苹果,平均分给",children,"个朋友,每人分",result,"")
    if __name__=="main":
        try :
            division()
        except ZeroDivisionError:
            print("苹果不能被0个小朋友分")
     except ValueError as e:
       print("输入错误:",e)
        else:
            print("分苹果顺利完成")
        finally:
            print("进行了一次分苹果操作")

    3.使用raise语句抛出异常

    如果某个函数或者方法可能会产生异常,但不想在当前函数或者方法中处理这个异常,则可以使用raise语句在函数或方法中抛出异常,raise语句的语法格式如下:

    raise [ExceptionName [(reason)]]
    其中,ExceptionName[(reason)] 为可选参数,用于指定抛出异常名称以及异常信息的相关描述。

    注:ExceptionName(reason)参数中的(reason)也可以省略,如果省略,则在抛出异常时,不附带任何描述信息。

    def division():
        '''功能:分苹果'''
        print("=========分苹果=========")
        Apple=int(input("请输入苹果的个数:"))
        children=int(input()"请输入来了几个小朋友:")
        if apple< children :
            raise ValueError("苹果太少了,不够分。。。")
        result=apple // children
        remain=apple - result * children
        if remain > 0:
            print(apple,"个苹果,平均分给",children,"个朋友,每人分",result,"个,剩下",remain,"")
        elseprint(apple,"个苹果,平均分给",children,"个朋友,每人分",result,"")
    if __name__=="main":
        try :
            division()
        except ZeroDivisionError:
            print("苹果不能被0个小朋友分")
     except ValueError as e:
       print("出错了",e)

    注:在应用raise抛出异常时,要尽量选择合理的异常对象,而不应该抛出一个与实际内容不相关的异常。

    花絮:

    本期的Python异常的处理就分享到这里,下期我们将继续分享Python程序调试的相关知识,感兴趣的朋友可以关注我。

    同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

  • 相关阅读:
    Python的扩展接口[1] -> 串口通信
    Python的扩展接口[0] -> VISA仪器控制
    Python的工具包[2] -> matplotlib图像绘制 -> matplotlib 库及使用总结
    Python的工具包[1] -> pandas数据预处理 -> pandas 库及使用总结
    Python的工具包[0] -> numpy科学计算 -> numpy 库及使用总结
    Python的Web编程[1] -> Web服务器[0] -> Web 服务器与 CGI / WSGI
    Python的Web编程[0] -> Web客户端[1] -> Web 页面解析
    Python的Web编程[0] -> Web客户端[0] -> 统一资源定位符 URL
    Python与正则表达式[0] -> re 模块的正则表达式匹配
    解决Wamp的 Error D:wamp or PHP path 错误
  • 原文地址:https://www.cnblogs.com/a-mumu/p/14686944.html
Copyright © 2011-2022 走看看