码迷,mamicode.com
首页 > 编程语言 > 详细

Python教程9

时间:2018-11-11 23:21:31      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:pass   ext   异常捕获   coding   class   print   input   主程   val   

Python教程9

  1.异常

# -*-coding:utf-8-*-
"""
1.异常:程序运行时,如果python解释器遇到一个错误,会停止程序的执行,并提示一些错误的信息
这就是异常
2.程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出异常

3.程序开发时,很难将所有的特殊情况都处理到,通过异常捕获,可以针对突发事件做几种处理
,从而保证程序的稳定性和健壮性

"""

"""
捕获异常的语法:
1.如果在程序开发中,对某些代码的执行不能确定是否正确,可以增加try()来捕获异常
2.语法格式如下:
try:
    尝试执行的代码
except:
    出现错误的处理
"""
# try语法,执行错误不会停止程序的执行
try:
    # 不确定能否正确执行的代码
    num = int(input("请输入整数:"))
    print("你的输入:%d" % num)
except:
    # 错误代码的处理
    print("请输入正确的整数")
print("-" * 50)

# 错误类型的捕获:
# 用户输入整数,使用8除以输入整数,并且输出
print("错误类型的捕获演示")
try:
    num1 = int(input("请输入整数:"))
    result = 8 / num1
    print(result)
except ZeroDivisionError:  # 报错类型的第一个单词
    print("除0错误")
except ValueError:
    print("请输入正确的整数:")

# 捕获未知错误
print("捕获未知错误演示----------")
try:
    num2 = int(input("请输入整数:"))
    result = 8 / num2
    print(result)
except ValueError:
    print("请输入正确的整数:")
except Exception as result1:
    print("未知错误 %s" % result1)

"""
异常捕获的完整语法:
try:
    尝试执行的代码
except 错误类型1
    错误处理
except (错误类型1,错误类型2)
    错误处理
except Exception as result:
    未知错误处理
else:
    没有异常时执行的代码
finally:
    无论是否异常,都会执行的代码
"""
print("完整异常语法演示----------")
try:
    print("尝试执行。。。。")
    num3 = int(input("请输入整数:"))
    result = 8 / num3
    print(result)
except ValueError:
    print("请输入正确的整数:")
except Exception as result:
    print("未知错误 %s" % result)
else:
    print("尝试成功")
finally:
    print("无论是否成功,都会执行的代码")

  2.异常的传递,主动抛出异常

# -*-coding:utf-8-*-
"""
异常的传递:当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方
如果传递到主程序,仍然没有异常处理,程序才会终止
提示:
    1.在开发中,可以在主函数中增加异常捕获
    2.而主函数调用其他函数,只要出现异常都会传递到主函数的遗产捕获中
    3.这样不需要代码中,增加大量的异常捕获,保证代码的整洁
"""


def demo1():
    return int(input("请输入整数:"))


def demo2():
    return demo1()


# 利用异常的传递性,在主程序捕获异常
try:
    print(demo2())
except ValueError:
    print("请输入正确的整数:")
except Exception as result:
    print("未知错误 %s" % result)

"""
抛出raise异常:
    在开发中,除了代码执行出错,python解释器抛出异常错误外,还可以根据
应用程序的业务需求,主动抛出异常

抛出异常:
python中提供Exception异常类
1.创建一个Exception对象
2.使用raise关键字抛出异常

示例:提示用户输入密码,若长度小于8,抛出异常
"""
print("**********主动抛出异常演示************")


def input_password():
    # 提示输入密码
    pwd = input("请输入密码:")
    # 判断密码长度>=8
    if len(pwd) >= 8:
        return pwd
    # 如果<8,主动抛出异常
    print("主动抛出异常")
    # 创建异常对象
    ex = Exception("密码长度不够")
    # 主动抛出异常
    raise ex


try:
    print(input_password())  # 提示不用try去捕获异常,此行代码报什么错误
except Exception as result:
    print(result)

 

Python教程9

标签:pass   ext   异常捕获   coding   class   print   input   主程   val   

原文地址:https://www.cnblogs.com/jun1/p/9943399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!