Java异常的概念,体系,处理异常的几种方法throw,Objects类的静态方法,throws,try...catch,Throwable。

本文详细介绍了Java中的异常处理,包括异常的概念、异常体系、异常分类,特别是重点讲解了`throw`、`Objects`类的静态方法、`throws`关键字以及`try...catch`的使用,并通过实例展示了如何在Java中有效地处理异常。
摘要由CSDN通过智能技术生成

1、异常概念

异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。
在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。java处理异常的方式是中断处理。
异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。

2、异常体系

在这里插入图片描述

3、异常分类

java.lang.Throwable:类是java语言中所有错误或异常的超类
Exception:编译器异常,进行编译(写代码)java程序运行过程中出现的问题
RuntimeException:运行期异常,java程序运行过程中出现的问题
异常就相当于得了一个小毛病(感冒,发烧),把异常处理掉,程序可以继续执行(吃点药,继续革命工作)
Error:错误
错误就相当于程序得了一个无法治愈的毛病,必须修改源代码,程序才能继续执行。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo01Exception {
   
    public static void main(String[] args) {
   
        //Exception:编译器异常,进行编译Java程序出现问题
        //格式化日期
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//        Date date = null;
//        try {
   
//            date = sdf.parse("1999-0909");
//        } catch (ParseException e) {
   
//            e.printStackTrace();
//        }
//        System.out.println(date);

//        int[] arr = {1, 2, 4, 6};
//        try {
   
//            //可能出现异常的代码
//            System.out.println(arr[4]);
//        }catch (Exception e) {
   
//            //异常处理逻辑
//            System.out.println(e); //java.lang.ArrayIndexOutOfBoundsException: 4
//
//        }
        //System.out.println(arr[4]);  //ArrayIndexOutOfBoundsException

        //Error 错误
        //OutOfMemoryError内存溢出错误,创建的数组太大了,超出了给JVM分配的内存
//        int[] arr = new int[1024 * 1024 * 1024];
        //必须修改代码,创建的数组小一点
        int[] arr = new int[1024 * 1024];
        System.out.println("后续代码");
    }
}

4、抛出异常throw

java异常处理的五个关键字:try,catch,finally, throw,throws、

/*
    throw关键字
    作用:
        可以使用throw关键字在指定的方法中抛出指定的异常
    使用格式:
        throw new xxxException("异常产生的原因");
    注意:
        1、throw关键字必须写在方法的内部
        2、throw关键字后边new的对象必须是Exception或者Exception的子类对象
        3、throw关键字抛出指定的异常对象,我们就必须处理这个异常对象
            throw关键字后边创建的是RuntimeException的子类对象,我们可以不处理
                默认交给JVM处理(打印异常,中断程序)
            throw关键字后边创建的是编译异常,我们就必须处理这个异常,要么throw,要么try...catch
 */
public class Demo03Throw {
   
    pub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值