从零学习python - 10程序中的异常处理

这篇具有很好参考价值的文章主要介绍了从零学习python - 10程序中的异常处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

* try: ... except: ... finally: ... 

# 当程序在运行时 可能会出现某些特殊情况导致程序运行停止 这个时候我们就需要抛出异常进行处理
# 如果不进行异常捕获的话 在出异常后的代码是不会接着运算的
# except 可以抛出多个异常进行处理 不同异常会根据不同except处理
# 当程序运行出错后,会自己抛出一个异常,这个异常会与下方except后的异常名比较,如果比较相同或辈分更小,则执行自己定义的异常下的处理办法
# 如果有多个(except 异常类型:)抛出 那么except Exception: 由于辈分最大 所以要放在最后 否则会捕捉所有抛出的异常
# 当except Exception: 捕捉异常但不知道是哪里出错 可以使用 except Exception as err: print(err) 进行打印err出错日志 err->相应异常类型对象
# 格式
'''
try:
    可能会出现异常的代码
except 异常类型1:
    如果出现异常则执行的代码
except 异常类型2...:
    如果出现异常则执行的代码
except Exception as err:
    如果出现的异常没有被catch 由于Exception辈分最大 所以会全部接收
finally:
    不管出不出异常都会执行的代码
'''

使用一个计算器方法测试一下

def calculator():
    try:
        a = int(input('输入第一个数:'))
        b = int(input('输入第二个数:'))
        per = input('输入运算符号(+ - * /):')
        result = 0

        if per == '+':
            result = a + b
        elif per == '-':
            result = a - b
        elif per == '*':
            result = a * b
        elif per == '/':
            result = a / b
        else:
            print('输入符号出错!')

        print(f'计算结果为:{result}')
    # 抛出数值异常 ValueError
    except ValueError:
        print('只能输入数字进行运算!')
    # 抛出x/0异常 ZeroDivisionError
    except ZeroDivisionError:
        print('输入数字不能为0!')
    except Exception as err:
        print('运行出错!', err)


# calculator()

在 try: 中的代码块如果出现异常,会根据我们下方抛出的不同异常进行捕获(ValueError - ZeroDivisionError - Exception),并且进行不同的异常处理.文章来源地址https://www.toymoban.com/news/detail-407697.html

'''
try:
    可能会出现异常的代码
except 异常类型1:
    出现异常如何处理的代码
else:
    如果try中没有出现异常则运行的代码
**注意:如果使用else则不能在try中出现return 否则else中代码不会执行
'''
# 下面函数中 如果更换文件地址会报异常 No such file or directory 并且报异常后不会执行else中的代码
# 如果没有异常 则try中代码运行完毕后 会接着运行else中的代码
def error_test():
    try:
        with open(r'E:\a1\copy1\test1\test1.txt', encoding='utf-8') as wStream:
            stream_read = wStream.read()
            print(stream_read)
            # return 1      # 加上return后 else中代码块显示 **This code is unreachable
    except Exception as err:
        print('出错了!', err)
    else:
        print('文件读取完毕!')


error_test()

* raise

# raise -> 在函数中我们可以在可能出异常的地方手动抛出一个异常
# raise 异常类型('提示信息')
def register():
    name = input('请输入用户名:')
    if len(name) < 6:
        # 如果输入的用户名小于6 则手动抛出异常
        raise Exception('用户名长度必须六位以上!')
    else:
        print('注册成功')
# 在当我们调用这个函数时 可以使用try ... except 来捕获这个异常
# 如果try:代码块中有raise关键字抛出异常 except就会捕获这个抛出的异常并进行异常处理
try:
    register()
except Exception as err:
    print('出错了!', err)  # 报错打印结果 -> '出错了! 用户名长度必须六位以上!'

到了这里,关于从零学习python - 10程序中的异常处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 异常处理:try、except、else 和 finally 的使用指南

    当发生错误(或我们称之为异常)时,Python 通常会停止执行并生成错误消息。 try 块用于测试一段代码是否存在错误。 except 块用于处理错误。 else 块用于在没有错误时执行代码。 finally 块用于无论 try 和 except 块的结果如何都要执行的代码。 可以使用 try 语句来处理这些异常

    2024年02月06日
    浏览(45)
  • Python 异常处理 try-except,else,finally, with 语句的区别

    在日常编写程序时,难免会遇到错误,有的是由于疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误,还有的是程序运行时与系统的规则冲突造成的系统错误,等等。 总的来说,编写程序时遇到的错误可大致分为 2 类,分别为语法错误和运行时错误。 Pyth

    2023年04月08日
    浏览(38)
  • Python中的异常处理及最佳实践【第125篇—异常处理】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 异常处理是编写健壮、可靠和易于调试的Python代码中不可或缺的一部分。在本文中,我们将深入探讨Python中的异常处理机制,并分享一些最佳

    2024年04月11日
    浏览(34)
  • Python编程中的异常处理

    程序错误(errors)有时也被称为程序异常(exceptions),这是每个编程人员都会经常遇到的问题。在过去,当遇到这类情况时,程序会终止执行并显示错误信息,通常是以Traceback的形式展示详细的异常报告。然而,Python提供了一项强大的功能,允许我们捕捉这些异常并编写相应

    2024年02月19日
    浏览(38)
  • Java中的异常Exception和捕获,自定义异常

    1.1 什么是程序的异常  在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的。 异常 :指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停

    2023年04月20日
    浏览(43)
  • chatgpt赋能python:Python异常过滤教程:如何正确处理和过滤Python中的异常

    Python是一种非常流行的编程语言,广泛应用于各种应用程序和领域中。在我们编写Python程序的过程中,通常要处理各种异常情况,比如用户输入错误,文件读取错误等等。正确处理和过滤这些异常情况是保证我们的程序能够正常运行的关键。 在本文中,我们将介绍如何正确处

    2024年02月09日
    浏览(51)
  • ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

    在介绍异常处理之前,有必要了解一些关于异常处理状态的术语: 当处理器响应一个异常时,我们称该异常被获取了( taken )。 处理器响应异常之前的状态被称为 taken from 。 处理器响应异常之后的状态被称为 taken to 。 因此,当处理器识别到异常时,此时处理器处于 taken

    2024年02月20日
    浏览(45)
  • 【Python学习】Python学习19- 异常处理

    目录 文章所属专区 Python学习 本章节主要说明Python的异常处理。 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所

    2024年01月19日
    浏览(35)
  • JAVA中的深情哥-Exception(异常)-上

    目录 文章目录 前言 一,Exception的起源  二,异常类  三,自定义异常 总结 前言 大家好,我是最爱吃兽奶,今天给大家介绍一下java中的深情哥 - Exception 秋风依依秋水寒,一点离愁两黯然;今生默默唯轻舞,为卿踏破九重天! C以及其他早期语言常常具有多种错误处理模式,这些

    2024年02月05日
    浏览(37)
  • Java中的异常表(Exception table)

    Java 代码中通过使用 try-catch-finally 块来对异常进行捕获/处理。但是对于 JVM 来说,是如何处理 try/catch 代码块与异常的呢? 实际上 Java代码在进行编译时,编译器会在代码后附加一个异常表,以实现try块出现异常后能进入对应的异常处理程序执行。 如果在方法执行期间抛出异

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包