try-catch 处理异常 以及一些基础的使用方法(重点)

try {
可能出现异常的代码;
} catch(异常类名 变量名) {
异常的处理代码;
}

  • 程序从 try 里面的代码开始执行

  • 出现异常,就会跳转到对应的 catch 里面去执行

  • 执行完毕之后,程序还可以继续往下执行

    public static void main(String[] args) {
    int[] arr = null;

      try {
          printArr(arr);
        
      } catch (NullPointerException e) {
          System.out.println("参数不能为空");
    
      }
    

    }

    private static void printArr(int[] arr) {

      if (arr ==null){
    
          throw new NullPointerException();
      }else {
          for (int i = 0; i < arr.length; i++) {
              System.out.println(arr[i]);
          }
      }
    

    }

}

  1. 如果 try 中没有遇到问题,怎么执行?

    会把try中所有的代码全部执行完毕,不会执行catch里面的代码

  2. 如果 try 中遇到了问题,那么 try 下面的代码还会执行吗?

    那么直接跳转到对应的catch语句中,try下面的代码就不会再执行了
    当catch里面的语句全部执行完毕,表示整个体系全部执行完全,继续执行下面的代码

  3. 如果出现的问题没有被捕获,那么程序如何运行?

    那么try…catch就相当于没有写.那么也就是自己没有处理.
    默认交给虚拟机处理.

  4. 同时有可能出现多个异常怎么处理?

    出现多个异常,那么就写多个catch就可以了.
    注意点:如果多个异常之间存在子父类关系.那么父类一定要写在下面

import javax.print.attribute.standard.OrientationRequested;
import java.util.PrimitiveIterator;
import java.util.Scanner;

public class Demo02 {

public static void main(String[] args) {


    try {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的年龄");
        String line = sc.nextLine();
        int age = Integer.parseInt(line); //格式化异常
        System.out.println(2/0);
    } catch (NumberFormatException e) {

    }catch (ArithmeticException b){

        System.out.println("除数不能等于0");
    }
    System.out.println("测试456");



public static void main(String[] args) {

    try {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的年龄");
        String line = sc.nextLine();
        int age = Integer.parseInt(line);
        System.out.println(age);
        System.out.println(2 / 0);
    } catch (NumberFormatException e) {


        System.out.println("格式化异常了");
    }catch (ArithmeticException b){
        System.out.println("解除异常");
    }
}}

你可能感兴趣的:(java,jvm,开发语言)