Java的异常Exception----(最简单明了的总结)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java的异常Exception----(最简单明了的总结),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2500字,纯文字阅读大概需要4分钟。
内容图文
1、什么是异常?
程序开发和运行过程中会出现编译错误和运行错误。编译错误容易被发现并排除,而运行错误(逻辑错误和异常)很难预料。因此为了程序的稳定性和可靠性,就需要对程序异常处理和保护。
异常( Exception ):正常程序流程所不能处理或者没有处理的异常情况或异常事件。
2、为什么要使用异常?
传统的程序设计中会像下面的伪代码形式来处理错误:
执行一个任务
if 前一个任务未能正确执行
执行错误处理
执行下一个任务
if 前一个任务未能正确执行
执行错误处理
而这样只会让程序更加复杂!
3、异常的分类
<1>根据异常在编译时是否被检测来分,异常可以分为两类:受检异常(CheckedException)与非受检异常(UncheckedException)。
<2>非受检异常不能在编译时检测到。非受检异常包括运行时异常(RuntimeException)和错误(Error)。
错误指的是致命性错误,常常无法处理。
<3>根据异常的严重性,可以分为可以处理的异常和错误异常。
异常以类的形式封装。程序可以处理的异常对应的类是java.lang.Exception及其子类。
运行时异常对应的类是java.lang.RuntimeException。
错误异常对应的类是java.lang.Error
5、异常的产生
<1>可以由 Java虚拟机在执行程序时自动发现并产生异常。
<2>也可以在程序中显式地生成异常,这种方法称为抛出异常(ThrowExceptions)。抛出异常采用throw语句,格式如下:
throw new ArithmeticException( );
或者:
ArithmeticException e=new ArithmeticException( );
throw e;
6、异常的处理
<1>捕捉异常(try_catch_finally语句)
try{
//可能产生异常的语句;
}catch(Exception1 e1){
//处理语句1;
}catch(Exception2 e2){
//处理语句2;
}finally{
//语句序列;
}
/*
1)catch语句块可以有多个;
2)catch语句块和finally语句块可以同时存在,也可以只有其一;
3)如果发生异常,则会跳转到捕捉对应异常的catch语句块,发生异常语句之后的语句序列不会被执行。
4)不管异常是否发生,finally语句块总是会被执行,除非碰到强制退出程序的System.exit(0)语句;
5)如果try语句块或catch语句块中有return语句,则会执行完finally语句块再执行返回。
*/
一个demo:
public class J_ExceptionCatch
{
public static void main(String args[ ])
{
try
{
System.out.println("try语句块");
throw new Exception( );
}
catch(Exception e)
{
System.err.println("catch语句块");
e.printStackTrace( );
}
finally
{
System.out.println("finally语句块");
} // try-catch-finally结构结束
} // 方法main结束
} // 类J_ExceptionCatch结束
/*运行流程:
1.try语句块捕捉throw的异常
2.跳转到相关的catch语句块
3.最后执行finally语句块的内容
*/
<2>throws抛出异常
public class Test{
public static void main(String[] args) throws IOException{
FileInputStream fis = new FileInputStream("a.txt");
}
}
//上面的main方法throws了IOException,声明但不去处理,所以在运行之后,
//该异常就会交给JVM处理,程序一旦遇到该异常,就会打印该异常的跟踪栈信息
//并结束程序
内容总结
以上是互联网集市为您收集整理的Java的异常Exception----(最简单明了的总结)全部内容,希望文章能够帮你解决Java的异常Exception----(最简单明了的总结)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。