本文主要是介绍异常处理的解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
package 异常;
/** A:一个异常* B:二个异常的处理* a:每一个写一个try...catch* b:写一个try,多个catch* try{* ...* }catch(异常类名 变量名) {* ...* }* catch(异常类名 变量名) {* ...* }* ...* * 注意事项:* 1:能明确的尽量明确,不要用大的来处理。* 2:平级关系的异常谁前谁后无所谓,如果出现了子父关系,父必须在后面。* * 注意:* 一旦try里面出了问题,就会在这里把问题给抛出去,然后和catch里面的问题进行匹配,* 一旦有匹配的,就执行catch里面的处理,然后结束了try...catch* 继续执行后面的语句。*/
public class Exception2 {public static void main(String[] args) {// method1();// method2();// method3();method4();}public static void method4() {int a = 10;int b = 0;int[] arr = { 1, 2, 3 };// 爷爷在最后try {System.out.println(a / b);System.out.println(arr[3]);System.out.println("这里出现了一个异常,你不太清楚是谁,该怎么办呢?");} catch (ArithmeticException e) {System.out.println("除数不能为0");} catch (ArrayIndexOutOfBoundsException e) {System.out.println("你访问了不该的访问的索引");} catch (Exception e) {System.out.println("出问题了");}// 爷爷在前面是不可以的// try {// System.out.println(a / b);// System.out.println(arr[3]);// System.out.println("这里出现了一个异常,你不太清楚是谁,该怎么办呢?");// } catch (Exception e) {// System.out.println("出问题了");// } catch (ArithmeticException e) {// System.out.println("除数不能为0");// } catch (ArrayIndexOutOfBoundsException e) {// System.out.println("你访问了不该的访问的索引");// }System.out.println("over");}// 两个异常的处理public static void method3() {int a = 10;int b = 0;int[] arr = { 1, 2, 3 };try {System.out.println(arr[3]);System.out.println(a / b);// System.out.println(arr[3]);} catch (ArithmeticException e) {System.out.println("除数不能为0");} catch (ArrayIndexOutOfBoundsException e) {System.out.println("你访问了不该的访问的索引");}System.out.println("over");}// 两个异常public static void method2() {int a = 10;int b = 0;try {System.out.println(a / b);} catch (ArithmeticException e) {System.out.println("除数不能为0");}int[] arr = { 1, 2, 3 };try {System.out.println(arr[3]);} catch (ArrayIndexOutOfBoundsException e) {System.out.println("你访问了不该的访问的索引");}System.out.println("over");}// 一个异常public static void method1() {// 第一阶段int a = 10;// int b = 2;int b = 0;try {System.out.println(a / b);} catch (ArithmeticException ae) {System.out.println("除数不能为0");}// 第二阶段System.out.println("over");}
}
JDK7提供的异常处理的新的解决方案
package 异常;/** JDK7出现了一个新的异常处理方案:* try{* * }catch(异常名1 | 异常名2 | ... 变量 ) {* ...* }* * 注意:这个方法虽然简洁,但是也不够好。* A:处理方式是一致的。(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理)* B:多个异常间必须是平级关系。*/
public class Exception3 {public static void main(String[] args) {method();}public static void method() {int a = 10;int b = 0;int[] arr = { 1, 2, 3 };// try {// System.out.println(a / b);// System.out.println(arr[3]);// System.out.println("这里出现了一个异常,你不太清楚是谁,该怎么办呢?");// } catch (ArithmeticException e) {// System.out.println("除数不能为0");// } catch (ArrayIndexOutOfBoundsException e) {// System.out.println("你访问了不该的访问的索引");// } catch (Exception e) {// System.out.println("出问题了");// }// JDK7的处理方案try {System.out.println(a / b);System.out.println(arr[3]);} catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {System.out.println("出问题了");}System.out.println("over");}}
这篇关于异常处理的解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!