栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于java异常

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于java异常

**Throwable类是所有错误和java中异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过java虚拟机或者Javathrow语句抛出。

Exception和Error都是继承了Throwable类,它们是异常处理机制的基本组成类型。

Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。

关于检查性和非检查性异常,不用深究理解,你只要懂得,平常有那么几种异常就好。
常见的检查性异常:
IOException
SQLException

ClassNotFoundException找不到某个类时,会抛出该异常,反射时会用到。

InterruptedException当阻塞方法收到中断请求的时候就会抛出中断异常。

常见的非检查性异常:

NullPointerException空指针引用异常,试图调用空对象的方法或者属性时,抛出该异常。

ArithmeticException 算术运算异常

ClassCastException类型转换异常,当试图将对象强制转换为不是实例的子类时,抛出该异常

IndexOutOfBoundsException 下标越界异常
NumberFormatException数字格式异常

try {可能出异常的代码}catch(异常类型 异常名){你解决的做法}finally {}

可以catch很多种异常,你也可以写很多种对应解决的做法,只不过catch异常的时候要注意次序,异常超类不能在子类前,超类都抛完了,子类没意义了。你解决的做法,可以打印这个异常(e.printstackTrace),也可以什么都不写,生吞了它。

无论异常是否发生,finally里的内容都会执行,发生异常时,先执行finally,再执行catch。
throws(一般用在方法名后)
和throw(用在方法内部,new一个异常抛出去),抛异常的注意点和try-catch差不多,不要直接把超类抛出去。

程序最终会采用finally代码块中的return语句进行返回,而直接忽略try语句块中的return指令

对于异常的使用有一个不成文的约定:尽量在某个集中的位置进行统一处理,不要到处的使用try-catch,否则会使得代码结构混乱不堪。按照
我们程序员的惯性认知:当遇到return语句的时候,执行函数会立刻返回。但是,在Java语言中,如果存在fnally就会有例外。除了return语句,try代码块中的break或continue语句也可能使控制权进入fnally代码块。请尽量不要在
try代码块中调用return、break或continue语句。
忠告:

策一,尽量不要捕获类似Exception这样的通用异常,而是应该捕获特定异常。

第二,不要生吞(swallow)异常

Error是指在正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常的,不可恢复状态。比如内存溢出错误(OutOfMemoryError),栈内存溢出错误(StackOverflowError),找不到class定义的错误(NoClassDefFoundError)等。

**

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693121.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号