JAVASE(复习)——异常

所有的异常都是在java.lang包中的Throwable类中 

一、Exception 和 Error 的区别

exception:程序本身发生的异常,可以捕获抛出异常,一般用try—catch—finally捕获。

error:发生在jvm层面的错误,程序无法处理。

二、编译时异常和运行时异常

  • 编译时异常(Exception)

    • 都是Exception类及其子类

    • 必须显示处理,否则程序就会发生错误,无法通过编译

  • 运行时异常(RuntimeException)

    • 都是RuntimeException类及其子类

    • 无需显示处理,也可以和编译时异常一样处理

三、Throwable类中的主要方法

public class myThrowable extends Throwable{

    @Override //返回异常发生时的简要描述
    public String getMessage() {
        return super.getMessage();
    }

    @Override //返回异常对象的本地化信息
    public String getLocalizedMessage() {
        return super.getLocalizedMessage();
    }

    @Override //返回异常发生时的详细信息
    public String toString() {
        return super.toString();
    }

    @Override //在控制台上打印 Throwable 对象封装的异常信息
    public void printStackTrace() {
        super.printStackTrace();
    }
}

 四、throws方式处理异常 

throws是定义在方法上的,且跟在方法后面,异常类名一般抛出最大的Exception。

一般调用方用的异常要大一些。

定义格式:

public void 方法名() throws 异常类名 {
    // 代码
}

 例子:

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

public class myThrowable{
    public static void main(String[] args) throws Exception{
        System.out.println("开始");
//        method1();
        method2();
        System.out.println("结束");
    }
    //编译时异常,异常必需要手动给出,否则报红
    public static void method2() throws ParseException {
        String s = "2022-08-08";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date d = sdf.parse(s);
        System.out.println(d);
    }
    //运行时异常
    public static void method1() throws ArrayIndexOutOfBoundsException {
        int[] arr = {1, 2, 3};
        System.out.println(arr[3]);
    }
}

运行时异常: 运行时才会发生,所以在方法后面可以不写,运行时出现异常默认交给jvm处理

 编译时异常在编译时就会检查,所以一定要在方法后抛出异常处理

 四、throw异常和try-catch-finally 使用

声明格式:

一般在方法中抛出,表示手动抛出异常,一般结合try-catch-fianlly使用

throw new 异常类型();

例子:

public class myThrowable{
    public static void main(String[] args){
        System.out.println("开始");
        method1();
        System.out.println("结束");
    }

    public static void method1() {
        try {
            int i = 1/0;
            System.out.println(i);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("异常信息描述:"+e.getMessage());
        } finally {
            //
        }
    }
}

 

 关于有返回值情况:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值