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")
全部评论

相关推荐

蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务