广告
返回顶部
首页 > 资讯 > 精选 >Java异常学习之自定义异常详解
  • 728
分享到

Java异常学习之自定义异常详解

java自定义异常ava 2023-05-31 11:05:11 728人浏览 独家记忆
摘要

前言哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常。Java异常的体系什么的,理论知识啥的我就懒得去BB太多了,是个搞J

前言

哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。

Java异常学习之自定义异常详解

小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常。Java异常的体系什么的,理论知识啥的我就懒得去BB太多了,是个搞Java开发的都知道,只是可能理解的不深,这个大家可以自己多看看资料,我就简单的说说。

什么是异常?

我不知道大家都是怎么去理解的,我的理解很简单,那就是不正常的情况,比如我现在是个男的,但是我却有着女人所独有的东西,在我看来这尼玛肯定是种异常,简直不能忍。就拿上面的异常图片来说,你应该是有小弟弟的,但你却没有小弟弟,这就是不正常的情况了,所以Java这个妹子会告诉你,你应该有小弟弟的才能办事,或者你没小弟弟就别来办事,你没小弟弟也要强上别人,那也没法玩啊是吧?

常说我们人的祖宗是猿,异常Exception的祖宗那就是Throwable类了,除了Exception类外,Throwable还有一个子类Error 。Error这玩意就不说了,你如果遇到了它你可以把电脑砸了,呼呼呼...跟大家开个玩笑,反正这玩意不是我们程序能处理的,它在程序处理的范畴之外。至于异常Exception又分为傻傻啥的,我就不BB了,再BB就B到这上面了。

给大家随便列举几个异常:

RuntimeException:你不能跑得足够快,可能因为你太胖了。关掉你的电脑,出门锻炼吧。

NullPointerException:你没有狗。请你先找一只狗,比如一只布烈塔尼獵犬,然后再试一次。

IndexOutOfBoundsException:你把食指放在了无法接收的地方,重新放置,再试一次。

FileNotFoundException:一名木匠应该总是知道他的工具放在哪里。

NotSerializableException:你正试图把一部电影改成电视剧。

这尼玛什么鬼?反正我是没看懂。还好今天我要理解的对象不是上面的这些玩意,搞错对象就不好了,看看就好了,但是别乱搞,男人都懂的,啧..啧..啧...。

自定义异常

今天我们要来理解的是什么是自定义异常,为什么要使用自定义异常,使用自定义异常有哪些好处,有哪些不好的地方?

要使用自定义异常就跟你和女朋友相处一样的,首先你得知道你为什么要跟你女朋友在一起,你女朋友有哪些好处,有哪些不好的地方,再来和你女朋友谈婚论嫁过一辈子,我们就先来说说这些问题,最后再来看怎么使用自定义异常,自定义异常的实现和使用非常简单,关键还是理解why的内容。

为什么要使用自定义异常,有什么好处?

      1.我们在工作的时候,项目是分模块或者分功能开发的 ,基本不会你一个人开发一整个项目,使用自定义异常类就统一了对外异常展示的方式。

      2.有时候我们遇到某些校验或者问题时,需要直接结束掉当前的请求,这时便可以通过抛出自定义异常来结束,如果你项目中使用了springMVC比较新的版本的话有控制器增强,可以通过@ControllerAdvice注解写一个控制器增强类来拦截自定义的异常并响应给前端相应的信息(关于springmvc控制器增强的知识有空再和大家分享)。

      3.自定义异常可以在我们项目中某些特殊的业务逻辑时抛出异常,比如"中性".equals(sex),性别等于中性时我们要抛出异常,而Java是不会有这种异常的。系统中有些错误是符合Java语法的,但不符合我们项目的业务逻辑。

      4.使用自定义异常继承相关的异常来抛出处理后的异常信息可以隐藏底层的异常,这样更安全,异常信息也更加的直观。自定义异常可以抛出我们自己想要抛出的信息,可以通过抛出的信息区分异常发生的位置,根据异常名我们就可以知道哪里有异常,根据异常提示信息进行程序修改。比如空指针异常NullPointException,我们可以抛出信息为“xxx为空”定位异常位置,而不用输出堆栈信息。

说完了为什么要使用自定义异常,有什么好处,我们再来看看自定义异常的毛病:

毋庸置疑,我们不可能期待JVM(Java虚拟机)自动抛出一个自定义异常,也不能够期待JVM会自动处理一个自定义异常。发现异常、抛出异常以及处理异常的工作必须靠编程人员在代码中利用异常处理机制自己完成。这样就相应的增加了一些开发成本和工作量,所以项目没必要的话,也不一定非得要用上自定义异常,要能够自己去权衡。

最后,我们来看看怎么使用自定义异常:

在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。

       •所有异常都必须是 Throwable 的子类。

       •如果希望写一个检查性异常类,则需要继承 Exception 类。

       •如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

可以像下面这样定义自己的异常类:

class MyException extends Exception{ }

我们来看一个完整的实例:

package com.czGo.exception;public class MyException extends RuntimeException { private static final long serialVersionUID = 1L;  private String errorCode;  private boolean propertiesKey = true;  public MyException(String message) {  super(message); }  public MyException(String errorCode, String message) {  this(errorCode, message, true); }  public MyException(String errorCode, String message, Throwable cause) {  this(errorCode, message, cause, true); }  public MyException(String errorCode, String message, boolean propertiesKey) {  super(message);  this.setErrorCode(errorCode);  this.setPropertiesKey(propertiesKey); }  public MyException(String errorCode, String message, Throwable cause, boolean propertiesKey) {  super(message, cause);  this.setErrorCode(errorCode);  this.setPropertiesKey(propertiesKey); }  public MyException(String message, Throwable cause) {  super(message, cause); }  public String getErrorCode() {  return errorCode; } public void setErrorCode(String errorCode) {  this.errorCode = errorCode; } public boolean isPropertiesKey() {  return propertiesKey; } public void setPropertiesKey(boolean propertiesKey) {  this.propertiesKey = propertiesKey; } }

--结束END--

本文标题: Java异常学习之自定义异常详解

本文链接: https://www.lsjlt.com/news/225368.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java异常学习之自定义异常详解
    前言哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常。Java异常的体系什么的,理论知识啥的我就懒得去BB太多了,是个搞J...
    99+
    2023-05-31
    java 自定义异常 ava
  • Python学习之自定义异常详解
    目录自定义抛出异常关键字 - raise演示小案例 - 1演示小案例 - 2自定义异常类总结在上一章我们学习了 异常的三个关键字,分别是try、except 以及 finally。我...
    99+
    2022-11-13
  • python 自定义异常类学习
    #自定义异常类 class MyException(Exception): pass def exextp_01(): try: #come code here list = ['java...
    99+
    2023-01-31
    自定义 异常 python
  • Python学习之异常处理详解
    目录什么是异常与异常处理异常的语法捕获通用异常捕获具体异常如何捕获多个异常捕获多个异常 - 方法1捕获多个异常 - 方法2本章节主要学习 python 中的异常处理,来看一下该章节的...
    99+
    2022-11-13
  • Python学习之异常断言详解
    该章节我们来学习 异常的最后一个知识点 - 断言 ,断言是判断一个表达式,在表达式为 False 的时候触发异常。表达式我们可以对号入座,可以是条件语句中的声明,也可以是是 whil...
    99+
    2022-11-13
  • C++学习之异常机制详解
    目录1. 异常处理机制介绍2. 如何抛出异常和捕获异常2.1 抛出异常2.2 捕获异常3. 如何实现自己的异常4. 注意事项5. 面试常问的题目6. 答案7. 总结1. 异常处理机制...
    99+
    2023-05-15
    C++异常机制 C++异常
  • Java异常--常见方法--自定义异常--增强try(try-with-resources)详解
    目录异常方法自定义异常作用定义增强try(try-with-resources)作用条件jdk7jdk9异常方法 //返回此可抛出对象的详细信息消息字符串 public String...
    99+
    2023-03-14
    java自定义异常 java增强try java try-with-resources
  • Java 异常机制Exception和自定义异常
    目录异常机制异常体系结构异常的捕获与抛出自定义异常异常机制 异常:就是不符合实际需求,在实际中可能不存在也可能不满足实际,所以出现的问题称之为异常。 异常的三种类型: 检查性异常:用...
    99+
    2022-11-13
  • python3学习之异常
    ##异常处理 #try: #    pass #except Exception as ex:   Exception(捕获所有错误)可以换成任何异常类型,代表只捕获指定错误, # 可以写多个except #    pass ##异常类型...
    99+
    2023-01-31
    异常
  • Java异常怎么自定义
    这篇文章主要介绍“Java异常怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java异常怎么自定义”文章能帮助大家解决问题。异常方法//返回此可抛出对象的详细信息消息字符串public&n...
    99+
    2023-07-05
  • java自定义错误异常
    java自定义错误异常下面代码定义了一个异常解决除法的问题,如果除数出现0或负数就报错注意,自定义异常的代码第一次运行时一定要写在应用的前面,否则会出现错误无法加载主类 java.lang.NoClassDefFoundError下面程序复...
    99+
    2015-12-23
    java基础 java 自定义异常
  • JavaScript高级之自定义异常
    目录1.概念 1.1什么是错误与异常 1.2异常的分类 2.异常处理 2.1try...catch语句 2.2finally语句 2.3throw语句 3.Error对象 3.1自定...
    99+
    2022-11-12
  • Python学习之异常中的finally使用详解
    目录finally的功能与用法finally示例案例finally触发的必然性与优先级try语法伴随except或finally的必然性finally的历史今天我们来学习一下 异常语...
    99+
    2022-11-13
  • python自定义异常
    python自定义异常try             异常在try块里抛,如果会产生多个异常,捕捉第一个,匹配except,后边的不再捕捉except: 抓异常else:       try无异常,才会执行elsefinally:   无论...
    99+
    2023-01-31
    自定义 异常 python
  • java中怎么自定义异常
    在Java中,可以通过继承Exception类或其子类来自定义异常。以下是一些自定义异常的示例: // 自定义一个异常类 class...
    99+
    2023-10-30
    java
  • 浅谈python抛出异常、自定义异常, 传递异常
    一. 抛出异常 Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行...
    99+
    2022-06-04
    异常 自定义 浅谈
  • python学习之异常处理
    一、语法导致的异常,应该在程序运行前处理 例子: print( 输出: File "E:/python/oldboyday9/learn1.py", line 4     if      ^ SyntaxError: invalid sy...
    99+
    2023-01-31
    异常 python
  • SpringMVC学习之JSON和全局异常处理详解
    目录1.为什么要全局异常处理2.异常处理思路3.SpringMVC异常分类4.综合案例         ...
    99+
    2022-11-13
    springmvc全局异常处理 springmvc的json问题 spring mvc json
  • Java自定义异常与异常使用的最佳方式
    目录异常的分类1. 非运行时异常(Checked Exception)2. 运行时异常(Runtime Exception/Unchecked Exception)异常的处理一、对应非运行时异常,必须对其进行处理二、对于运行时异常,可以不对...
    99+
    2019-09-12
    Java异常 自定义异常 异常使用
  • java怎么抛出自定义异常
    在Java中,可以通过自定义一个类,并继承Exception或RuntimeException类来创建自定义异常。 下面是一个示例代...
    99+
    2023-10-21
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作