【Java基础】打卡学习Java异常处理(案例详解)

简介: 打卡学习Java异常处理!
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿大家奔赴在各自的热爱里…

一、基础学习

本篇分享的Java基础:异常处理
在这里插入图片描述
来来来,直接看看我写的相关案例

/**
 * @program: ExceptionDemo
 * @description: 异常相关知识点
 * @author: 辰兮要努力
 * @create: 2021-10-2 16:37:27
 */
public class ExceptionDemo {
    public static void main(String[] args){
        try {
            handle();
        }catch(Exception e) {
            System.out.println("捕获程序在运行过程中产生的异常");
        }

        try {
            handle();
        }catch(ArithmeticException e) {
            System.out.println("捕获程序在运行过程中产生的异常");
        }

        System.out.println("验证如果不捕获异常能否执行后续的程序");
        handle();
        System.out.println("hello 我无法输出");
    }
    public static void handle(){
        int a = 5/0;  //异常抛出点
        /**
         * 此处下面的代码不会执行,原因:上面代码抛出异常未在方法中捕捉,程序中断
         */
        System.out.println("hello world");
    }
}

如上案例的输出结果,建议初学者自行实践

捕获程序在运行过程中产生的异常
捕获程序在运行过程中产生的异常
验证如果不捕获异常能否执行后续的程序
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at com.exception.ExceptionDemo.handle(ExceptionDemo.java:32)
    at com.exception.ExceptionDemo.main(ExceptionDemo.java:28)

思考问题

1、 System.out.println("hello world");此段代码是否会执行?

解答1:System.out.println("hello world")此段代码不能被执行,因为执行到 int a = 5/0; 的时候程序抛出了异常,且被捕获,此段代码被跳过


2、如果捕获的异常不匹配实际的异常,程序是否能正常执行?

比如这里切换成NullPointerException后续的程序是否能正常进行

   try {
            handle();
        }catch(NullPointerException e) {
            System.out.println("捕获程序在运行过程中产生的异常");
        }

直接看结果吧
在这里插入图片描述
解答2:此处编译不会报错,此处捕获的异常不匹配,后续的程序无法正常执行下去


二、进阶学习

Throwable 是 Java 语言中所有错误与异常的超类。

Throwable 包含两个子类:Error(错误)和 Exception(异常),它们通常用于指示发生了异常情况。

Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTrace() 等接口用于获取堆栈跟踪数据等信息

在这里插入图片描述

Error 和 Exception 区别是什么?

请添加图片描述
Error 类型的错误通常为虚拟机相关错误,如系统崩溃,内存不足,堆栈溢出等,编译器不会对这类错误进行检测,JAVA 应用程序也不应对这类错误进行捕获,一旦这类错误发生,通常应用程序会被终止,仅靠应用程序本身无法恢复;

Exception 类的错误是可以在应用程序中进行捕获并处理的,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行


说一说Java中的受检异常(checked exception)和非受检异常(unchecked exception)?

请添加图片描述
Java 的所有异常可以分为受检异常(checked exception)和非受检异常(unchecked exception)。

受检异常:

  • 范围:除 RuntimeException 及其子类外,其他的 Exception异常都属于受检异常。
  • 编译器会检查此类异常,也就是说当编译器检查到应用中的某处可能会此类异常时,将会提示你处理本异常——要么使用try-catch捕获,要么使用方法签名中用throws 关键字抛出,否则编译不通过。(编译器要求必须处理的异常。)

非受检异常:

  • 范围:该类异常包括运行时异常(RuntimeException极其子类)和错误(Error)。
  • 编译器不会进行检查并且不要求必须处理的异常,也就说当程序中出现此类异常时,即使我们没有try-catch捕获它,也没有使用throws抛出该异常,编译也会正常通过

hello,你好 我是辰兮,后续我会继续整理一下Java基础的相关案例,欢迎学习、分享、交流、打卡!

非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

愿你们奔赴在自己的热爱里!

目录
相关文章
|
3月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
247 1
|
3月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
341 0
|
3月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
344 98
|
3月前
|
安全 Java 编译器
驾驭Java异常处理:从新手到专家的优雅之道
驾驭Java异常处理:从新手到专家的优雅之道
238 59
|
3月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
363 7
|
4月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
89 5
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
922 37
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
519 4
|
存储 安全 Java
java基础面试题
java基础面试题
111 2
【Java基础面试四十一】、说一说你对static关键字的理解
这篇文章主要介绍了Java中static关键字的概念和使用规则,强调了类成员与实例成员的区别及其作用域的限制。