/**
* @param args
* 异常:程序运行中的错误
* Throwable
Error
Exception
编译时异常
除了RuntimeException以及他所有的子类
编译时必须处理,要么try要么throws
运行时异常
RuntimeException以及他所有的子类
编译不报错,运行时报错
属于程序员犯的错误,需要回来修改代码
例如,空指针异常,索引越界异常,并发修改异常,除0异常,类型转换异常
什么时候try什么时候throws
当后续代码需要执行用try
当后续代码不需要执行throws
如何自定义异常?
继承Exception或RuntimeException
构造方法中用super交给父类完成
为什么要自定义异常呢?
主要想见名知意
try catch finally分别有什么作用?
try
检测代码
catch
捕获异常
finally
释放资源(关闭流,关闭数据库等)
1,try catch
2,try finally
3,try catch finally
finally一定会执行吗?
会的,除非在他前面退出jvm虚拟机System.exit(0)
throw和throws的区别?
throws放在方法上,后面跟异常类名,如果是多个,用逗号隔开
throw放在方法内,后面跟异常对象,只能跟一个
如果在方法内抛出的异常对象是一个编译时异常,在方法上必须用throws声明异常信息
如果在方法内抛出的异常对象是一个运行时异常,在方法上不用抛出
*/
|
|