最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java自定義異常打印內(nèi)容詳解

 更新時間:2019年10月28日 15:21:17   作者:LitongZero  
這篇文章主要為大家詳細(xì)介紹了java自定義異常打印內(nèi)容的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java自定義異常打印內(nèi)容的具體代碼,供大家參考,具體內(nèi)容如下

背景:在開發(fā)中,我們可能會使用到自定義異常,但是,這個自定義異常在打印日志時,往往打印的內(nèi)容比較多。

1.自定義異常打印內(nèi)容

可以看到,雖然我們使用的是自定義異常,但是當(dāng)拋出時,還是會打印出堆棧的全部信息。

2.查看源碼

通過查看源碼,我們可以得知,當(dāng)拋出異常時,程序會調(diào)用此異常的fillInStackTrace方法,但是,大部分異常都沒有對該方法做處理?;臼钦{(diào)用super的方法。

可以看到,此方法的父類實(shí)現(xiàn),是在Throwable類中。而且此方法加了synchronized鎖,查看堆棧的信息。那么必然會影響性能。

底層實(shí)現(xiàn)是native,調(diào)用C語言的方法。

3.解決方法

①.編寫自定義異常

// 此處為lombok注解
@Getter
@AllArgsConstructor
public enum ExceptionEnum {
  AUTH(1, "認(rèn)證異常")
  ;
  private Integer code;
  private String msg;
}


public class AppException extends RuntimeException {
  public AppException(ExceptionEnum exceptionEnum) {
    super(exceptionEnum.getMsg());
  }
  
  // 關(guān)鍵
  @Override
  public Throwable fillInStackTrace() {
    return this;
  }

  public static void main(String[] args) {
    throw new AppException(ExceptionEnum.AUTH);
  }
}

②.重寫fillInStackTrace方法

重寫該方法后,會只打印第一條信息,這樣不僅可以節(jié)省日志空間,方便查看,更可以提高部分性能。

@Override
  public Throwable fillInStackTrace() {
    return this;
  }

③.打印內(nèi)容

可以看到,打印內(nèi)容明顯變少

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot 通過注解實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的方法

    Spring Boot 通過注解實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的方法

    這篇文章主要介紹了Spring Boot 通過注解實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 詳解Springboot分布式限流實(shí)踐

    詳解Springboot分布式限流實(shí)踐

    這篇文章主要介紹了詳解Springboot分布式限流實(shí)踐 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • java使用RestTemplate封裝post請求方式

    java使用RestTemplate封裝post請求方式

    這篇文章主要介紹了java使用RestTemplate封裝post請求方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • springboot如何通過注解實(shí)現(xiàn)多線程

    springboot如何通過注解實(shí)現(xiàn)多線程

    在Spring Boot中實(shí)現(xiàn)異步方法時,如果直接在調(diào)用類中使用`@Async`注解,可能會導(dǎo)致異步失敗,正確的做法是將實(shí)現(xiàn)異步的方法放在一個獨(dú)立的類中,并通過Spring生成的bean來調(diào)用這個方法,這樣可以成功實(shí)現(xiàn)異步
    2024-12-12
  • 使用Java Collections實(shí)現(xiàn)集合排序的全面指南

    使用Java Collections實(shí)現(xiàn)集合排序的全面指南

    在Java編程中,集合(Collection)是處理數(shù)據(jù)的重要工具之一,Java集合框架提供了豐富的接口和類來操作數(shù)據(jù)集合,而排序是其中最常見的操作之一,本文將詳細(xì)介紹如何使用Collections類對集合進(jìn)行排序,并深入探討其背后的原理和使用場景,需要的朋友可以參考下
    2025-02-02
  • 詳解JUC 常用4大并發(fā)工具類

    詳解JUC 常用4大并發(fā)工具類

    這篇文章主要介紹了JUC 常用4大并發(fā)工具類的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java 并發(fā)編程,感興趣的朋友可以了解下
    2020-10-10
  • SpringBoot bean的多種加載方式示例詳解

    SpringBoot bean的多種加載方式示例詳解

    本文詳細(xì)介紹了在SpringBoot中加載Bean的多種方式,包括通過xml配置文件、注解定義、特殊方式如FactoryBean、@ImportResource、ApplicationContext以及使用@Import注解導(dǎo)入bean的方法,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • 詳解Java如何優(yōu)雅的調(diào)用dubbo同時不使用其它jar包

    詳解Java如何優(yōu)雅的調(diào)用dubbo同時不使用其它jar包

    這篇文章主要介紹了如何在不使用他人jar包的情況下優(yōu)雅的進(jìn)行dubbo調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • mybatis項(xiàng)目CRUD步驟實(shí)例詳解

    mybatis項(xiàng)目CRUD步驟實(shí)例詳解

    這篇文章主要介紹了mybatis項(xiàng)目CRUD步驟,包括pom.xml引入相應(yīng)的依賴,在resources目錄下寫配置文件,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • servlet3文件上傳操作

    servlet3文件上傳操作

    這篇文章主要介紹了servlet3文件上傳操作的相關(guān)資料,需要的朋友可以參考下
    2017-11-11

最新評論

隆回县| 都匀市| 潞城市| 阳朔县| 斗六市| 财经| 临潭县| 普兰县| 曲靖市| 纳雍县| 禹城市| 如皋市| 云林县| 上林县| 安达市| 芒康县| 长岛县| 高平市| 扶沟县| 古交市| 冷水江市| 会理县| 河南省| 深水埗区| 耿马| 苗栗市| 丽水市| 武定县| 赣榆县| 海南省| 阳城县| 洞头县| 怀化市| 西和县| 宣武区| 丰都县| 南投市| 天镇县| 无锡市| 宣城市| 当阳市|