在java中具有很多的异常信息,对于这些异常信息,常常需要进行捕获处理的。常见的异常处理信息:
(1)try - catch
①正常情况下的信息:执行try
②不正常的情况,类型不匹配:执行try
③不正常,类型匹配:执行try - catch
(2)try - finally
这种情况是无论程序是否有异常,程序都会执行finally中的信息
①正常情况下执行:try - finally
②异常情况下,也是执行try - finally
(3)try - catch - finally
①正常情况下执行:try - finally
②不正常情况下的异常匹配执行:try - catch - finally
③不正常情况下的类型不匹配:try - finally
exception是声明异常
异常的打印方式是:System.err.println()
不正常的三种打印方式:
(1)e.printStackTrace();程序员自己用,第一行打印什么类型的错,最后一行打印出引起异常的位置
(2)System.out.println(e.getMessage());错误信息的字符串描述
(3)System.out.println(e.toString());只输出异常类型
示例代码
package com.wyq.study;
import java.util.InputMismatchException;
import java.util.Scanner;
public class TestErr {
public static void main(String[] args) {
int num1 = 0;
int num2 = 0;
int res = 0;
try {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
num1 = sc.nextInt();
System.out.println("请输入第二个数:");
num2 = sc.nextInt();
res = num1 / num2;
} catch (Exception e) {
System.out.println("类型有误");
System.out.println("~~~~~~~~~~~~~e.printStackTrace()~~~~~~~~~~~~~~~~");
e.printStackTrace();
System.err.println("++++++++++++++e.getMessage()+++++++++++++++++");
System.out.println(e.getMessage());
System.out.println("**************e.toString()*******************");
System.out.println(e.toString());
} finally {
System.out.println("结束!");
}
System.err.println(num1 + "\t" + num2 + "=" + res);
}
}
在写异常的时候,通常情况下,需要在try之前就将变量进行申明,同时还要对这写变量进行初始化。