您的位置:首页 > 其它

关于 异常 的一些总结(自定义异常确实有用啊)

2017-08-25 20:30 519 查看
关于异常

编译错误,逻辑错误不算异常;其实是一些因为不可控的因素,不期而至的各种情况,导致程序运行的异常

用对象表示

异常的体系结构:

(1)Throwable类,所有错误或例外的超类

分为Error、Exception

Error是错误,不应该试图捕获,而是应该尽量避免,并非是几句代码就能解决的错误

Exception是例外,

分为受检异常:编译期要求必须处理的,否则,编译不通过

非受检异常,编译期间不强制要求处理,但在运行期间可能发生异常RuntimeException

受检异常包括:IOException SQLException FileNotFoundException

非受检异常有:NullPointerException ArithmeticException ArrayIndexOutOfBoundsException

一般都是编码的原因,应尽量去避免

Java的异常处理机制

抛 JVM自动抛出,也可以手动抛出

抓 catch

try catch异常   可以有多个

finally 不管是否发生异常都要执行的代码,一般用于释放资源连接

catch里应该如何处理呢

e.printStackTrace() 打印出来,堆栈信息,全面的,红色显示

e.getStackTrace()

e.getMessage()

也可以作为日志记录

throws 异常列表

实际开发中,一般底层选择throws,而上边的代码进行try catch

重写父类的方法时:异常的类型<=父类

手动抛出异常 throw

throw 异常对象

可以替代return结束某一个语句

如果throw是运行时异常,那么编译期不会要求当前方法或编译者必须编写处理代码

自定义异常

必须继承Throwable或者他的其他子类

一般是继承Exception或RuntimeException

自定义的异常只能通过throw手动抛出,JVM不会自动抛出

要注意finally和return执行的顺序

在return之前先执行finally的代码

finally中不建议写return

关于Integer

在-128~127之间使用最多,所以有个类似缓存的东西存在,这样就不用每次开辟新的Integer对象了;

如果是其他的值的话,需要每次新的对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: