Java学习-异常处理

来源:互联网 发布:linux服务器是什么 编辑:程序博客网 时间:2024/06/07 16:06
异常处理
1、捕获
语法:try{
正常逻辑的代码
但有可能发生异常
}catch(异常类型 变量名){
处理
}
当try块后边的catch块之间没有继承关系时,他们的顺序可以随意调换;但是如果catch块之间存在继承关系,那么捕获子catch类必须放在捕获父类catch前边
通过catch块的 变量名.printStackTrace() 打印异常的堆栈信息,开发测试阶段打印未知的异常信息,便于进行代码的调试,运行阶段,往往会把这句代码注释掉
eg:catch(Exception exc){
exc.printStackTrace();
}

finally:不管是否发生异常,都必须要执行的代码
return,continue,break都不能阻止执行,只有关闭虚拟机System.exit能阻止运行
一般用于资源清理,连接关闭,管道关闭
语法细节:
1、catch语句是有顺序的
2、try,catch,finally是不能单独存在的。catch与finally前边必须有try。

throw与throws
区别位置后面语句内容效果的不同throw写在方法体当中,是一条执行语句后边写的是一个异常对象
一旦执行到throw语句,就会真正的做出一个异常对象被抛出的动作一旦执行到throw语句,就会真正的做出一个异常对象被抛出的动作throws写在方法申明的最后,是一条声明语句后边接的是一个或者多个异常类的类型名
表示本方法有可能抛出某种或某几种类型的异常,仅在编译期提示调用者,运行期不一定发生表示本方法有可能抛出某种或某几种类型的异常,仅在编译期提示调用者,运行期不一定发生

程序员会怎么用异常处理呢?
1、调用先人的throw声明的方法,
2、运行时异常
(1)多做if判断,不让异常有产生的机会
(2)不是所有的异常都用try-catch
a. 例如空指针异常,数学异常
b. 99%的用if
(3)1%的情况,重点考虑代码流程的控制
3、throw/throws只有在大型分层项目中,在有可能自己写

自定义异常语法

0 0