预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

java中try语句和throw的区别Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。用try来指定一块预防所有“异常”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”。Finally为确保一段代码不管发生什么“异常”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,“异常”的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。try和throw的区别try:出现在方法体中,它自身是一个代码块,表示尝试执行代码块的语句。如果在执行过程中有某条语句抛出异常,那么代码块后面的语句将不被执行。throw:出现在方法体中,用于抛出异常。当方法在执行过程中遇到异常情况时,将异常信息封装为异常对象,然后throw。补充throws和catch语句throws:出现在方法的声明中,表示该方法可能会抛出的异常,允许throws后面跟着多个异常类型catch:出现在try代码块的后面,自身也是一个代码块,用于捕获异常try代码块中可能抛出的异常。catch关键字后面紧接着它能捕获的异常类型,所有异常类型的子类异常也能被捕获。小编举例packagebook.exception;/***抛出异常和声明异常*@authorjoe**/publicclassThrowAndThrows{/***计算一个数字的平方根*@paramnStr以字符串的形式提供数字*@return返回平方根*@throwsException当用户输入的字符串为空,*或者字符串无法转换成数字,或者转换成的数字小于0,都会抛出异常*/publicstaticdoublesqrt(StringnStr)throwsException{if(nStr==null){//用trow关键字抛出异常,当异常被抛出时,程序会跳出该方法thrownewException("输入的字符不能为空!");}doublen=0;try{n=Double.parseDouble(nStr);}catch(NumberFormatExceptione){//将parseDouble方法可能抛出的异常NumberFormatException捕获,//然后将捕获的异常重新封装并输出thrownewException("输入的字符串必须能够转化成数字!",e);}if(nthrownewException("输入的字符串转化成的数字必须大于0!");}returnMath.sqrt(n);}publicstaticvoidmain(String[]args)throwsException{try{ThrowAndThrows.sqrt("-124.56");}catch(Exceptione){//将sqrt方法声明的可能抛出的Exception异常捕获//打印捕获的异常的堆栈信息,从堆栈信息中可以发现异常发生的位置和原因System.out.println("GotaException:"+e.getMessage());e.printStackTrace();throwe;//不做进一步处理,将异常向外抛出}//将sqrt声明了可能会抛出的异常向外抛出,必须在方法声明中使用throwsThrowAndThrows.sqrt("-124.56");}}程序输出结果:GotaException:输入的字符串转化成的数字必须大于0!java.lang.Exception:输入的字符串转化成的数字必须大于0!atbook.exception.ThrowAndThrows.sqrt(ThrowAndThrows.java:30)atbook.exception.ThrowAndThrows.main(ThrowAndThrows.java:37)Exceptioninthread"main"ja