我是靠谱客的博主 结实便当,最近开发中收集的这篇文章主要介绍程序出错了咋办?今天带你解决------详解Java异常本文结束:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

声明:博主的学习笔记

文章前言:

所谓异常,字面意思:情况有点不一样了。其实我们学习任何一门程序语言,从刚刚入门就会接触到了异常,只不过没有进行分类,总结的去全面的认识异常,本博客将会带你解读异常的相关知识,系统的去学习异常


文章目录:
1、认识异常
2、防御式编程
3、异常的完整用法
4、Java 的异常体系结构
5、finally
6、函数之间的异常处理
7、异常处理流程
8、抛出异常
9、自定义异常实现用户登录
10、自定义异常练习
在这里插入图片描述


1、认识异常

我们先看一些常见的异常:三种基本异常

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们可以发现上面的三种不同的代码,是三种不同的情况的异常

异常的定义:

所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制.

注意:其实在有些情况下,异常也有可能不是在 运行时 出现的
有一些拼写的 错误(这里的不叫异常),例如:

将 System.out.println 拼写错了, 写成了 system.out.println. 此时编译过程中就会出错, 这是 “编译期” 出错


2、防御式编程

错误在代码中是客观存在的,谁写的代码也无法保证错误,所以代码都可能会存在异常,我们主要由以下两种方式:

LBYL: Look Before You Leap. 在操作之前就做充分的检查.
EAFP: It’s Easier to Ask Forgiveness than Permission. “事后获取原谅比事前获取许可更容易”. 也就是先操作, 遇到 问题再处理.

LBYL 风格的代码(不使用异常)

在这里插入图片描述

EAFP 风格的代码(使用异常)

在这里插入图片描述

3、异常的完整用法

try{ 
 有可能出现异常的语句 ; 
}[catch (异常类型 异常对象) {
} ... ]
[finally {
 异常的出口
}]

在这里插入图片描述

先看一个没有被处理的异常:

在这里插入图片描述

使用 try catch 语句对异常进行一个捕获与处理:

在这里插入图片描述

但是如果异常语句后面仍存在语句,后面的语句不会被执行:

在这里插入图片描述

如何显示出来处理的是什么异常(查明异常的类型):

在这里插入图片描述

出现异常红字的好处:

在这里插入图片描述

处理异常与不处理异常的区别:
  • 未处理异常:这个异常会交给 JVM ,程序会在异常处直接终止,异常后面的任何语句都不会被执行
  • 处理异常:使用 try catch 包裹异常后,仅仅只有 try 语句块中异常后面的语句不被执行,try catch 语句块后面的语句还是会正常运行
    在这里插入图片描述
看一种情况,当你的 try 语句段抛出的异常没有被 catch 捕获的时候,此时证明没有处理该异常,异常就会交给 JVM 程序在异常处立即终止

在这里插入图片描述

处理方法:

在这里插入图片描述

一个 catch 语句也可以捕获多个异常

在这里插入图片描述

也就是说:当 try 中发生异常时,对应的 catch 要捕获对应的异常,如果没有捕获对应的异常,异常就会交给 JVM 处理,一旦交给 JVM 处理程序立刻结束

如何分辨程序是异常结束还是正常结束

在这里插入图片描述

4、Java 的异常体系结构

声明:仅展示部分,其余的还有很多异常,遇到查帮助手册即可

在这里插入图片描述

既然 Exception 是所有异常的父类,那么再 catch 捕获异常时,可不可以这样写:

在这里插入图片描述

答案是:可以但不推荐,因为 Exception 可以代表太多的异常

在这里插入图片描述

看一个错误代码事例:

在这里插入图片描述

所以:在 catch 捕获异常的时候,最好从上到下,是子类异常---->父类异常,不要是父类异常----->子类异常。最好写具体的异常类

5、finally

finally 一般用于资源的关闭

在这里插入图片描述

也可以这样写:

在这里插入图片描述

注意:当异常交给 JVM 处理的时候,finally 也会被执行
观察:以下一个代码

在这里插入图片描述

所以注意:尽量避免在 finally 语句中出现 return 语句

6、函数调用之间的异常处理:

在这里插入图片描述

所以:

在这里插入图片描述

为了方便函数调用者去处理异常,可以在函数中声明异常

在这里插入图片描述

7、异常处理流程:

在这里插入图片描述

注意:当出现大量红色字体的时候,程序不一定出现了错误,例如在使用 Tomcat 的时候运行 jsp 文件的时候就会出现大量红色的字体,其并不是错误

8、抛出异常

除了 Java 内置的类会抛出一些异常之外, 程序猿也可以手动抛出某个异常. 使用 throw 关键字完成这个操作.

在这里插入图片描述

但是上面的代码中 throw 使用的不好,throw 应该抛出的是自定义异常

9、自定义异常实现用户登录

根据自定义异常继承的父类类别,可以把自定义类型异常分为两种,受查异常,非收查异常

1、非受查异常
在这里插入图片描述
2、受查异常
在这里插入图片描述

利用自定义异常实现用户名登录过程:

在这里插入图片描述

10、自定义异常练习

问题:处理异常使其不再报异常

在这里插入图片描述


本文结束:

上面的就是 java 异常相关的内容,如有错误 + 不清晰的知识点,随时练习博主,谢谢大家的支持!!!!!!!!!!!!!

最后

以上就是结实便当为你收集整理的程序出错了咋办?今天带你解决------详解Java异常本文结束:的全部内容,希望文章能够帮你解决程序出错了咋办?今天带你解决------详解Java异常本文结束:所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部