java中的异常概述
Java  /  管理员 发布于 8年前   191
一、什么是异常
异常就是程序运行过程中所出现的不正常现象。
try
:把可能发生异常的代码包起来,当发生异常时,将异常抛出
catch
:捕获异常并处理
finally
:不管是否发生异常,都会执行
throw
:手动引发一个异常
throws
:定义任何被调用方法的异常
在线学习视频推荐:java在线视频
二、异常出现的原因
用户输入错误;
代码的错误;
环境的因素;
异常机制保证了程序的健壮性!
三、异常的分类
NullPointerException
空引用异常
IndexOutOfBoundException
下标越界异常
Error与编``译环境有关,它是Java运行时的内部错误以及资源耗尽错误。很难修复,不期望用户能修复。
四、获取异常信息
程序发生异常的时候,程序就直接从try执行到catch语句块,不再继续执行`在这里。
public class text3 { public static void main(String[] args) {System.out.println("main开始执行");text3 a=new text3();a.text();System.out.println("main执行结束");} public void text() { int a; try { a=2/0; System.out.println(a); }catch(ArithmeticException e){ System.out.println("程序发生了异常"); } }}
异常捕获之后程序才不会断
public class text3 { public static void main(String[] args) {System.out.println("main开始执行");text3 a=new text3();a.text();System.out.println("main执行结束");} public void text() { int a; //try { a=2/0; System.out.println(a); //}catch(ArithmeticException e){ //System.out.println("程序发生了异常"); //} }}
控制台结果:
异常自己不处理但是得声明一下。
异常声明:指一个方法不处理它所产生的异常,而是调用层次向上传递,谁调用的这个方法谁来处理。
五、手动抛出异常
throw exception; 参数exception表示要抛出的异常对象,该对象是throwable类的子类,而且只能够是一个。
public void text1() throws ArithmeticException{}public static void main(String[] args) {Text t=new Text();try {t.text();} catch (Exception e) {// TODO Auto-generated catch blockSystem.out.println(e.getMessage());}}public void text() throws Exception {//手动抛出异常throw new Exception("这是手动抛出来的");}}
六、try catch finally的嵌套使用
public class Textthrow { public static void main(String[] args) {double a=Math.random(); try { if(a>0.5) { System.out.println(a+"程序不报错"); } else { throw new Exception(); } }catch(Exception e) { System.out.println("这是外层捕获的对象"+e); try { a=1/0; }catch(ArithmeticException e1) { System.out.println("这是内层捕获的对象"+e1); }finally { System.out.println("这是内层的finally块"); } }finally { System.out.println("这是外层的finally块 "); }}}
七、异常链
定义:两个或者多个不同的异常出现在同一个程序中,并且会发生嵌套抛出,我们称之为异常链。
public class ExceptionChainText { public static void main(String[] args) {Calculator c=new Calculator();try {c.chufa(1, 0);}catch(NumberCalculateExcetption e) {e.printStackTrace();System.out.println("错误原因"+e);}}}class Calculator{public int chufa(int i,int j) throws NumberCalculateExcetption {if(j==0) {NumberCalculateExcetption e = newNumberCalculateExcetption ("计算错误");NegativeNumberException e1=newNegativeNumberException("除数不能为0"); e.initCause(e1);//由e1引起的异常 throw e;}return 0;}}class NegativeNumberException extends Exception{public NegativeNumberException(String msg) {super(msg);}}class NumberCalculateExcetption extends Exception{public NumberCalculateExcetption(String msg) {super(msg);}}
相关文章教程推荐:java入门程序
以上就是java中的异常概述的详细内容,更多请关注其它相关文章!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号