Java 异常处理初识

  1. 下面程序,虽能运行,但当数据输入有误时程序不能正常结束,也就是说,程序本身没有进行异常处理。

例题001 用Java编写程序。输入两个整数,输出它们的商。

import java.util.Scanner; public class MyAdd { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a = in.nextInt(); int b = in.nextInt(); int div = a / b; System.out.println("a/b=" + div); } }

  1. 下面程序,虽能进行异常处理,但是把异常影响的相关代码相分离,没有很好的掌握异常处理逻辑。

例题002 用Java编写程序。输入两个整数,输出它们的商。

import java.util.InputMismatchException; import java.util.Scanner;

public class MyDiv { int a, b, di;

public MyDiv() {
	super();
	try {
		Scanner in = new Scanner(System.in);
		a = in.nextInt();
		b = in.nextInt();
	} catch (InputMismatchException e) {
		System.out.println("输入数据有误!");
	}
}

int caculate() {
	try {
		di = a / b;
	} catch (ArithmeticException e) {
		System.out.println("除数为零!");
	}
	return di;
}

public static void main(String[] args) {
	MyDiv div = new MyDiv();
	System.out.println("a/b=" + div.caculate());
}

}

例如,当输入aa bb时,程序结果为: 输入数据有误! 除数为零! a/b=0

3.比较好的做法,是将异常影响的相关代码放到一起,放在try{ }中,对各种异常分别用相关catch(...){...}处理。 例题003 用Java编写程序。输入两个整数,输出它们的商。

import java.util.InputMismatchException; import java.util.Scanner;

public class MyDiv { public static void main(String[] args) { try { Scanner in = new Scanner(System.in); int a = in.nextInt(); int b = in.nextInt(); int div = a / b; System.out.println("a/b=" +div); } catch (InputMismatchException e) { System.out.println("输入数据有误!"); } catch (ArithmeticException e) { System.out.println("除数为零!"); } } } 程序像这样,就能在出现异常时,程序能符合逻辑的正常运行。