栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 异常基础

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 异常基础

目录
  • Exceptions
    • `1. try-except`
    • `2. 自定义异常`

Exceptions 1. try-except
  • 知道异常类型
# 读取一个不存在的文件
file_name = 'not_existing.txt'

try:
    with open(file_name, 'r') as my_file:
        print('File is successfully open')
        
except FileNotFoundError as e:
    print('Uups, file: {} not found'.format(file_name))
    print('Exception: {} was raised'.format(e))

# Uups, file: not_existing.txt not found
# Exception: [Errno 2] No such file or directory: 'not_existing.txt' was raised
  • 不知道异常类型
def calculate_division(var1, var2):
    result = 0
    
    try:
        result = var1 / var2
    except ZeroDivisionError as ex1:
        print("Can't divide by zero")
    except Exception as ex2:
        print('Exception: {}'.format(ex2))

    return result

result1 = calculate_division(3, 3)
print('result1: {}'.format(result1))  # result1: 1.0

result2 = calculate_division(3, '3')
# Exception: unsupported operand type(s) for /: 'int' and 'str'
print('result2: {}'.format(result2))  # result2: 0

result3 = calculate_division(3, 0)
# Can't divide by zero
print('result3: {}'.format(result3))  # result3: 0
  • try-except也可以放在函数外部
def calculate_division(var1, var2):
    return var1 / var2

try:
    result = calculate_division(3, '3')
except Exception as e:
    print(e)

# unsupported operand type(s) for /: 'int' and 'str'
2. 自定义异常
import math

# 定义自己的异常
class NegativeNumbersNotSupported(Exception):
    pass

# 实例
def secret_calculation(number1, number2):
    if number1 < 0 or number2 < 0:
        msg = 'Negative number in at least one of the parameters: {}, {}'.format(
            number1, number2)
        raise NegativeNumbersNotSupported(msg)
  
    return math.sqrt(number1) + math.sqrt(number2)

# 触发自定义异常
result = secret_calculation(-1, 1)
# NegativeNumbersNotSupported: Negative number in at least one of the parameters: -1, 1
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号