java中异常的知识

java中异常的知识

ID:13067026

大小:67.00 KB

页数:9页

时间:2018-07-20

java中异常的知识_第1页
java中异常的知识_第2页
java中异常的知识_第3页
java中异常的知识_第4页
java中异常的知识_第5页
资源描述:

《java中异常的知识》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、4.4异常4.4.1了解异常异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误,如程序要打开一个不存的文件、网络连接中断、操作数越界、装载一个不存在的类等。我们先来看看下面的程序代码吧:publicclassTestException{publicstaticvoidmain(String[]args){intresult=newTest().devide(3,0);System.out.println(“theresultis”+result);}}classTest{publicintdevide(intx,inty){intresult=x/y;returnresult;

2、}}编译运行上面的程序,将出现如下错误:Exceptioninthread"main"java.lang.ArithmeticException:/byzeroatTest.devide(TestException.java:14)atTestException.main(TestException.java:5)上面的程序运行的结果报告发生了算术异常(ArithMethicException),系统不再执行下去,提前结束,这种情况就是我们所说的异常。4.4.2try…catch语句我们将上面的程序代码进行如下修改:publicclassTestException{publicstat

3、icvoidmain(String[]args){try{intreslut=newTest().devide(3,0);System.out.println("theresultis"+reslut);}catch(Exceptione){System.out.println(e.getMessage());}System.out.println("programisrunninghere,thatisnormal!");}}classTest{publicintdevide(intx,inty){intresult=x/y;returnresult;}}程序运行结果如下:/byze

4、roprogramisrunninghere,thatisnormal!我们看到程序在出现异常后,系统能够正常的继续运行,而没有异常终止。在上面的程序代码中,我们对可能会出现错误的代码用try…catch语句进行了处理,当try代码块中的语句发生了异常,程序就会跳转到catch代码块中执行,执行完catch代码块中的程序代码后,系统会继续执行catch代码块后的其他代码,但不会执行try代码块中发生异常语句后的代码,如程序中的System.out.println(“theresultis”+result);不会再被执行。可见Java的异常处理是结构化的,不会因为一个异常影响整个程序的执

5、行。当try代码块中的程序发生了异常,系统将这个异常发生的代码行号,类别等信息封装到一个对象中,并将这个对象传递给catch代码块,所以我们看到catch代码块是以下面的格式出现的。catch(Exceptione){System.out.println(e.getMessage());}catch关键字后跟有一个用括号括起来的Exception类型的参数e,这跟我们经常用到的如何定义一个函数接收的参数格式是一样的。括号中的Exception就是try代码块传递给catch代码块的变量类型,e就是变量名,所以我们也可以将e改用成别的名称(如ex等),如下所示:catch(Excepti

6、onex){System.out.println(ex.getMessage());}4.4.3throws关键字针对上面的例子,我们假设TestException类与Test类不是同一个人写的,写TestExc-ption类的人,在main方法中调用Test类的devide方法时,怎么能知道devide方法有可能出现异常情况呢?他又怎么能够想到要用trycatch语句去处理可能发生的异常呢?问题可以这样解决,只要写Test类的人,在定义devide方法时,在devide方法参数列表后用throws关键字声明一下,该函数有可能发生异常及异常的类别。这样,调用者在调用该方法时,就必须用t

7、ry…catch语句进行处理,否则,编译将无法通过。如下面的程序代码:publicclassTestException{publicstaticvoidmain(String[]args){intresult=newTest().devide(3,1);System.out.println(“theresultis”+result);}}classTest{publicintdevide(intx,inty)throwsException{in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。