java异常处理

java异常包括:
1.Error:java虚拟机无法解决的过程,比如栈溢出,不编写专门的代码解决;OOM,out of memory
2.Exception:其他因变成错误的外部因素导致的一般性问题,可以针对性的代码进行处理,
异常的体系结构:java.lang.Error,java.lang.Exception编译时异常(checked):IOException,FileNotException,classNotException;运行时异常(unchecked):空指针异常,算术异常,数组界限异常,classcastException,InputMismatch异常;
异常的处理:过程1.程序正常执行的过程,一旦出现异常,就会在异常代码出生成一个对应异常类的对象。并将此对象抛出,一旦抛出对象以后,其后的代码就不再执行了
过程二:抓:可以理解为异常的处理方式,1.tra-catch-finally{一定会执行的代码}finally是可选代码;,
运行时异常,只能捕获一个异常,一旦处理完成某个异常,就直接跳出catch异常;继续执行其后的代码;catch中的异常如果没有子父类关系,顺序无关,如果有子父类的关系则要求子类一定要在父类的上面;string s=e.getMessage();sysout(e.printStackTrace())
在try结构中声明的变量,出了try就不能用了;处理编译时异常,使得程序在编译时不再报错,但运行时仍可能出现异常,相当于将一个编译时可能出现的异常延迟到运行时出现;
finally,try-catch-finally;
像数据库连接,输入输出流,网络编程socket等资源,jvm是不能自动回收的,我们需要自己手动进行资源的释放,此时就需要将其声明在finally中
2.throws:异常类型卸载方法的声明处,指明此方法执行时可能会抛出异常,一旦当方法抛出异常时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会被抛出,异常后的代码不再被执行;try-catch-finally真正将异常处理,throws并没有将真正的异常处理;
子类重写的方法抛出的异常不大于父类被重写的方法的抛出的异常;
开发中如何选择使用try-catch-finally还是finally
1.如果父类中被重写的方法没有throws方式处理异常,则子类重写的方法也不能使用throws,意味着如果子类重写的方法中有异常,必须使用try-catch-finally
2.执行的方法中先后调用了另外的几个方法,这几个方法主要是递进的关系执行的额,我们建议这几个方法使用throws方式进行处理,而执行的方法a可以考虑采用try-catch-finally的方式进行处理异常;
关于异常对象的产生;系统自动生成异常;手动生成异常,并抛出(throw)throw new RunntimeException()
用户自定义异常类::1.继承现有的异常类结构;2.提供全局常量,serialversionUID,唯一标识。3,提供重载的构造器;
抛抓:执行javac.exe时可能出现的异常;运行时异常是在执行java.exe时出现 异常;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值