zoukankan      html  css  js  c++  java
  • python中异常处理之esle,except,else

    异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。

    python中使用try...except语句捕获异常,异常子句定义在try子句后面。try子句中的代码块放置可能出现异常的语句,except子句中的代码块处理异常,加上else和return语句,便可用来判断某段代码是否正常运行,将结果返回。

    举个栗子:

    try:
         file("hello.txt", "r")                  #如果文件不存在,引发异常
         print "读文件"
    except IOError:                              #捕获IO异常
         print "文件不存在"
    except#其它异常
         print "程序异常" 

    try也可加上finally语句,finally语句表示无论结果是什么,都执行此语句。栗子:

    try:
         f = open("hello.txt", "r")
         try:
              print f.read(5)
         except:
              print "读文件异常"
         finally:
              print "释放资源"
              f.close()
    except IOError:
         print "文件不存在"

    举个实际中使用的例子吧,程序中要求用户input字符串,字符串是一个嵌套的字典,通过json解读字符串并从中取值。所以,如果不符合要求的字符串在处理过程中就会报错导致中断,那就需要牛掰的try...except...else选手出场了,下面的代码:

    #定义确认用户输入格式是否为ha配置文件所需格式函数
    def enter_query(add_contect_str):
        """
        :param add_contect_str: 用户选择修改配置文件后,输入的格式必须为字典
        :return: Flase=用户输入格式不正确  True=用户输入格式正确
        """
        try:    #尝试将用户输入字符串转化为列表,并给变量赋值
            add_contect=json.loads(add_contect_str)
            search_info=add_contect['backend']
            weight=add_contect['record']['weight']
            server=add_contect['record']['server']
            maxconn=add_contect['record']['maxconn']
        except: #如果异常,return 值为False
            return False
        else:   #如果无报错,return 值为False
            return True

    这样一个函数,把return值传给后面的代码,即使输入格式错误,直接print("格式错误")提示用户就行啦,从而避免了程序中断。

  • 相关阅读:
    Django中间件
    cookies与session
    Django Form组件
    Django 自定义分页器
    Django 批量插入数据
    Ajax
    图书管理系统
    Django常用字段及参数、事务、数据库查询优化
    Django之F与Q查询
    课堂测试-统计单词个数和字母出现频率
  • 原文地址:https://www.cnblogs.com/ccorz/p/5522330.html
Copyright © 2011-2022 走看看