1.异常处理关键字
关键字:try——catch:尝试(try)运行正常逻辑,如果在运行正常逻辑中出现异常就会用catch来进行捕获。(主逻辑放在try块里面异常处理逻辑放在catch里面)
throw:抛出异常
基本思想:主逻辑与异常处理逻辑分离。
2.异常处理流程
如果我们定义三个函数f1、f2、f3。用f2来调用f1,用f3来调用f2,如果我们的f1在运行过程中出现了异常,它就会把异常向上抛,如果f2能够处理异常,那就可以处理完成,如果无法处理就继续往上抛,f3就会捕获到异常并处理。如果搜友的函数都不能处理就会给操作系统操作系统就会粗暴关闭程序!
举例1:当我们的fun1函数遇到异常逻辑时就抛出1.然后用catch来捕获然后进行处理,注意的是抛出的1是int类型那么我们catch()括号里面也要对应使用int类型。当我们没有收到异常是就不会执行catch里面的代码。
注意我们try—catch是一对多的,我们的函数可能在不同的行抛出不同类型的数据来指示不同的错误类型。这样我们就可以对应不同的catch来处理不同的错误!
举例2:
3.常见的异常
数组下表越界
除数为零
内存不足
4.异常与多态的关系
我们将异常的种类定义为Exception,可以定义为一个接口类在其中定义一些打印的方法或者是异常处理的方法,然后我们通过
细分的子类来继承Exception类,当我们抛出这些子类的对象的时候都可以用父类的对象去捕获了!
无论是fun1还是fun2中抛出的错误都可以通过Excepption来捕获异常!并且可以通过子类对象来调用相应的虚函数来处理异常!