我是靠谱客的博主 天真薯片,最近开发中收集的这篇文章主要介绍编译异常和运行期异常java异常,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java异常

在这里插入图片描述

小结

RuntimeException和Exception有什么区别:

Exception属于编译时异常,编译器在编译时会检测该异常是否异常的处理方案 ,如果没有处理方案,编译不能通过。

RuntimeException属于运行时异常,编译器不会检测该异常是否有异常的处理方案,不需要声明。

说明:在Exception的所有子类异常中,只有RuntimeException不是编译异常,是运行时异常,其他子类都是编译异常。

编译时期异常

一定要用try catch或者tthrows处理,否则程序报错,无法生成字节码文件

checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如日期格式化异常)
在这里插入图片描述

2种解决方式

throws(不推荐,没法运行后续代码)

package cn.itcast.test;

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

public class TryTest {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;

            date = sdf.parse("1999-0909");

        System.out.println("date = " + date);
        System.out.println("后续代码");
    }
}

在这里插入图片描述

try catch(推荐,可以运行后续代码)

package cn.itcast.test;

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

public class TryTest {
    public static void main(String[] args)  {
        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 = " + date);
        System.out.println("后续代码");
    }
}

在这里插入图片描述

运行时期异常

不一定要用try catch或者throws处理,因为程序不报错

runtime异常。在运行时期,检查异常.在编译时期,运行异常不会让编译器检测(不报错)。(如数学异常)
在这里插入图片描述

运行时期时异常:ArrayIndexOutOfBoundsException,NullPointerException

运行时期异常(RuntimeException)在方法上不用throws抛出

当 throw new RuntimeException的时候,不用throws

package cn.itcast.test;

public class TryTest {
    public static void main(String[] args) {
        //创建一个数组
        int[] arr = {2,4,52,2};
        //根据索引找对应的元素
        int index = 4;
        int element = getElement(arr, index);

        System.out.println(element);
        System.out.println("over");

    }
    /*
     * 根据 索引找到数组中对应的元素
     */
    public static int getElement(int[] arr,int index){
        //判断  索引是否越界
        if(index<0 || index>arr.length-1){
             /*
             判断条件如果满足,当执行完throw抛出异常对象后,方法已经无法继续运算。
             这时就会结束当前方法的执行,并将异常告知给调用者。这时就需要通过异常来解决。
              */
            throw new ArrayIndexOutOfBoundsException("哥们,角标越界了~~~");
        }
        int element = arr[index];
        return element;
    }
}


在这里插入图片描述

最后

以上就是天真薯片为你收集整理的编译异常和运行期异常java异常的全部内容,希望文章能够帮你解决编译异常和运行期异常java异常所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部