Java 异常类try-catch语句

Java使用try-catch语句来处理异常,将可能出现的异常操作放在try部分,一旦try部分抛出异常对象,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那么try部分就会立刻结束执行,转向执行相应的catch部分。

程序可以将发生异常后的处理放在catch部分,try-catch语句可以有多个catch部分,分别处理相应的异常;

try-catch语句的格式如下:

try {
    包含可能发生异常的语句
} catch (Exception e){
    .....
}catch (Exception e){
    .....
}finally{
.....
}

finally部分呢是不管前面的catch语句有没有执行,但是一定会执行finally语句部分;
try-catch语句可以搭配catch部分和finally部分一起使用,一个try-catch语句一定要包含一个或多个catch部分或者finally部分,不能单独出现try部分;

e.printStackTrace()方法介绍
try {
    包含可能发生异常的语句
} catch (Exception e){
    e.printStackTrace();
}
e.printStackTrace()方法可以打印出错误的堆栈信息,包括错误的描述,错误的类型以及错误出现的地方,举个例子:
import java.util.Scanner;

public class Demo1 {
    //输入两位整数,求商
	
	public static void main(String args[]) {
    int a,b;
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入两位整数:");
    try {
        System.out.println("请输入第1位整数:");
        int one = sc.nextInt();
        System.out.println("请输入第2位整数:");
        int two = sc.nextInt();
        System.out.println("两位之商为::"+(one/two)	);
	}catch(Exception e){
		e.printStackTrace();
	}
}
}

当我们输入6和的时候,程序正常执行,结果为3
当我们输入6和0的时候,大家都知道,在数学运算中被除数不能为,所以程序会报错,并打印出相关的错误信息,如下图所示
Java 异常类try-catch语句_第1张图片

try-catch-finally语句的用法
还是上面那个例子,在上面的例子末尾加上finally语句,并且打印输出“运算结束”

import java.util.Scanner;

public class Demo1 {
    //输入两位整数,求商
	
	public static void main(String args[]) {
    int a,b;
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入两位整数:");
    try {
        System.out.println("请输入第1位整数:");
        int one = sc.nextInt();
        System.out.println("请输入第2位整数:");
        int two = sc.nextInt();
        System.out.println("两位之商为::"+(one/two)	);
	}catch(Exception e){
		e.printStackTrace();
	}finally {
	    System.out.println("运算结束");
	}
}
}

运行结果为:(不管有多少catch语句,finally语句是一定会被执行的)
Java 异常类try-catch语句_第2张图片

当在catch语句中加入System.exit(1);时,如果程序有异常,跳转到执行catch方法,然后执行System.exit(1)语句时,程序会被终止,即不会打印出异常错误信息,也不会执行后面的finally语句,结果如下图。(括号里的1自己设定,不为0即可)

Java 异常类try-catch语句_第3张图片
所以System.exit(1)语句的作用是终止程序运行;

你可能感兴趣的:(Java)