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

文章介绍了Java中的异常处理机制,包括try-catch块的使用。当try块中的代码发生异常时,程序会跳转到相应的catch块进行处理。如果没有异常,try块执行完毕后不会执行catch块。示例代码展示了NumberFormatException和ArithmeticException的捕获。在有多个异常类型时,catch块可以按顺序处理,父类异常应放在子类异常之后。
摘要由CSDN通过智能技术生成

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("解除异常");
    }
}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值