Python错误与异常

语法错误与定位

错误与异常的区别?

错误与异常都是在程序编译和运行时出现的错误
异常可以被开发人员捕获和处理
错误一般是系统错误,一般不需要开发人员处理(也无法处理),比如说内存溢出

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行
有些是由于拼写、配置、选项等等各种引起的程序错误,有些是由于程序功能处理逻辑不完善引起的漏洞,这些统称为程序中的异常

异常处理流程

检测到错误----->引发异常--------->捕获异常操作

异常解决方案

如果是拼写、配置等引起的错误,根据出错信息进行排查错误出现的位置进行解决
如果是程序设计不完善引起的漏洞,根据漏洞的情况进行设计处理漏洞的逻辑

异常捕获与异常处理

try:
      执行代码
except:
      发生异常时执行的代码

在发生异常的时候,我们不希望程序停下来,可以继续运行其他的程序,那么就用try,except来进行异常捕获

try:
    num1=int(input("输入一个除数"))
    num2=int(input("输入一个被除数"))
    print(num1/num2)
except:
    print("这是一个异常")

当发生异常时,打印:这是一个异常,程序不会报错
如果想要在程序中指定某个异常的时候(知道异常的名字):

try:
    num1=int(input("输入一个除数"))
    num2=int(input("输入一个被除数"))
    print(num1/num2)
except ZeroDivisionError:   #当输入被除数为0时触发此异常
    print("被除数不能为0")
except ValueError:          #当输入的不是数值型整数是触发此异常
    print("输入的需要是数值型整数")

当没有发生异常时要进行某个操作时,用else:
如果希望不管有没有发生异常都执行某个操作,用finally:

try:
    num1=int(input("输入一个除数"))
    num2=int(input("输入一个被除数"))
    print(num1/num2)
except ZeroDivisionError:   #当输入被除数为0时触发此异常
    print("被除数不能为0")
except ValueError:          #当输入的不是数值型整数是触发此异常
    print("输入的需要是数值型整数")
else:
    print("没有发生异常")
finally:
    print("无论有没有异常,都执行")

抛出异常

x=10
if x>5:
    raise Exception("这是抛出的异常信息")

如果不想用系统的异常,可以自己定义异常

class Myexception(Exception):
    def __init__(self,value1,value2):
        self.value1=value1
        self.value2=value2

raise Myexception("value1","value2")
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 13:35
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务