3.Java值传递与引用传递( 十 )


throw,用在方法中主动抛出异常
public class Application {public static void main(String[] args) {int a=1;int b=0;try {if(b==0){throw new ArithmeticException();//主动抛出异常,一般在方法中使用}} catch (Exception e) {e.printStackTrace();} finally {}}}/*java.lang.ArithmeticException*/
------------------------------------------------------------------------------------------
,用在方法上主动抛出异常
如果方法中无法处理一个异常,即没有捕获到,那么可以在方法上抛出异常
public class Application {public void test(int a,int b) throws ArithmeticException{System.out.println(a/b);}public static void main(String[] args) {try {new Application().test(1,0);} catch (ArithmeticException e) {System.out.println("捕获到了");} finally {}}}/*捕获到了*/
16.自定义异常总结
大部分情况不需要自定义异常,但这个东西需要知道 。
使用Java内置的异常类可以描述在编程时出现的大部分异常情况,除此之外,用户还可以自定义异常,用户自定义异常类,只需继承类即可 。
使用自定义异常类,大体可分为以下几个步骤:
//自定义的异常类需要继承Exception类public class MyException extends Exception {private int detail;public MyException(int a){this.detail=a;}//toString异常的打印信息@Overridepublic String toString() {return "MyException{" +"detail=" + detail +'}';}}----------------------------------------------------------------public class Application {static void test(int a) throws MyException{System.out.println("传递的参数为"+a);if (a>10){throw new MyException(a);//抛出}System.out.println("OK"); //throw抛出异常后这里的代码没有执行}public static void main(String[] args) {try {test(11);} catch (MyException e) {System.out.println("MyException>-"+e);}}}/*传递的参数为11MyException>-MyException{detail=11}*/
实际应用中的经验总结:
【3.Java值传递与引用传递】处理运行时异常时,采用逻辑去合理规避同时辅助try-处理在多重catch块后面,可以加一个catch( e)来处理可能会被遗漏的异常对于不确定的代码,也可以加上try-catch,处理潜在的异常尽量去处理异常,切忌只是简单的调用()去打印输出具体如何处理异常,要根据不同的业务需求和异常类型去决定尽量添加语句块去释放占用的资源