python学习 异常

#===========================常见异常 ===================== 
#print(a);#NameError: name 'a' is not defined 变量未定义
#if True:#SyntaxError: unexpected EOF while parsing 语法错误
#f=open("123.txt");#FileNotFoundError: [Errno 2] No such file or directory: '123.txt' 没有这个文件 #print(10/0);
# ZeroDivisionError: division by zero 除数为 0错误 #print(int("a"));
# ValueError: invalid literal for int() with base 10: 'a' 值转换无效
#-*-config=utf-8 -*-
#===========================异常处理 (捕获运行时异常) =====================
#常见异常
#print(a);#NameError: name 'a' is not defined  变量未定义
#if True:#SyntaxError: unexpected EOF while parsing 语法错误
#f=open("123.txt");#FileNotFoundError: [Errno 2] No such file or directory: '123.txt' 没有这个文件
#print(10/0);# ZeroDivisionError: division by zero 除数为 0错误
#print(int("a"));# ValueError: invalid literal for int() with base 10: 'a' 值转换无效
#=====================  try - except 语法 ==================
def tryTest_1():
    try:
        print(10/0);
    except:# 捕获所有类型异常
        print("Zero   Error");# Zero   Error
#tryTest_1();

def tryTest_2():
    try:
        print(10/0);
    except ZeroDivisionError as e:#捕获 指定类型的异常
        print("Zero   Error");# Zero   Error
#tryTest_2();
#案例 猜数字游戏
import random;
def guessNum():
    num=random.randint(0,100);#生成一个随机数
    while True:
        try:
            inputNum=int(input());
        except ValueError as e:
            print("请输入1-100的数字");
            continue;
        if num>inputNum:
            print("输入的太小");
        if num<inputNum:
            print("输入的太大");
        if(num==inputNum):
            print("Ok");
            break;
#guessNum();
#======================同时处理多个异常====================
def tryTest_3():
    try:
        f=open("2.txt");
    except FileNotFoundError as  e:
        print("文件不存在");#文件不存在
    except ValueError as e:
        print("错误的值");
#tryTest_3();
#===================== try - except - else==============
#如果存在异常代码执行相应的异常类型捕获,如果不存在异常代码执行else
def tryTest_4():
    try:
        print(1+1);
        #f=open("2.txt");
    except FileNotFoundError as  e:
        print("文件不存在");#文件不存在
    except ValueError as e:
        print("错误的值");
    else:
        print("No Error");
#tryTest_4();
#===================== try finally  ============
#无论是否检查到异常,都会执行finally代码
#作用:为异常处理事件提供清理机制,用来关闭文件或者释放资源。
def tryTest_5():
    try:
        f=open("2.txt");
    finally:
        print("file close");
        f.close();
#tryTest_5();
#========================== try -except -finally =============
#1、如果 try语句没有捕获异常,执行try代码后,执行finally语句
#2、如果 try语句捕获到异常,首先执行except语句后执行finally语句
def tryTest_6():
    try:
        f=open("2.txt");
    except FileNotFoundError as e:
        print("文件不存在");
    finally:
        print("file close");
        f.close();
#tryTest_6();

#========================== try -except - else -finally =============
#1、如果 try语句没有捕获异常,执行try代码后执行else语句最后执行finally语句
#2、如果 try语句捕获到异常,首先执行except语句后执行finally语句
def tryTest_7():
    try:
        print(10/1);
    except ZeroDivisionError as e:#捕获 指定类型的异常
        print("Zero   Error");# Zero   Error
    else:
        print("else语句");
    finally:
        print("finally");
#tryTest_7();
#==============================with 语句======================
# with语句用来替换try-except-finall语句 使代码更加简洁
def withTEst():
    try:
        with open("E:pythonw_2.txt") as f:
            print(f.readline());
    except FileNotFoundError as e:
        print("文件不存在");
        f.close();
#withTEst();
#=======================raise 语句 ==============================
#raise  主动抛出异常
#类似于java中的throw关键字
def raiseTest():
    raise IOError("IO异常");
#raiseTest();
#======================assert语句=================================
#assert语句:用于检测表达式是否为真,如果为假,引发AssertionError错误
#语法:assert expression (判断一个表达式)
# assert expression1, expression2(判断多个表达式)
import random;
def assertTest(n):
    assert n>random.randint(0,10);
    print(n);
#assertTest(3);
#如果传入的 n 大于随机生成的数则打印n
#如果传入的n小于随机生成的数 则引发AssertionError错误
原文地址:https://www.cnblogs.com/jalja/p/6148740.html