Java中的异常可抛可捕抓,就是throw或try...catch.
如果是throw,那么在抛完异常后,后面的代码不会再执行.它并不限于方法内,方法外的程序也不会执行.如:
Test.java
public class Test { public static void main(String[] args) { /** * 在这个主方法内: * 如果test1()里抛出异常且没有捕获,那么test1()内throw下面的代码都不会执行,test2()也不会执行, * 所以throw的作用范围是全局的. */ Test1.test1(); Test2.test2(); } }
如果是try...catch,catch后面的程序还会往下执行.
大多数情况下,我们都是使用try...catch捕获异常.在catch块内进行异常的业务处理.再使用throw把异常抛出,停止程序的执行并把异常告知调用的上层.如果你是调用的最上层,那你不可以抛出异常,只能使用try...catch进行捕获并处理.
return:
一般用作方法的值返回.也可以用于停止方法往下执行: return; 如:
public class Test { public static void main(String[] args) { /** * 在这个主方法内: * 如果test1()里出现return;,那么test1()内return;下面的代码都不会执行,但是test2()会执行 * return;的作用范围是方法内. */ Test1.test1(); Test2.test2(); } }