当前位置: 首页 > 网络应用技术

@sneakythrows注释和实施原则

时间:2023-03-09 11:12:50 网络应用技术

  @sneakythrows从Java的异常设计系统中发表了评论。

  1.普通异常类,这是我们经常说的或检查异常。

  2. RuntimeException类,在运行时异常。

  前者将迫使将其扔掉以声明投掷,而呼叫者必须显示此例外。设计的目的是提醒开发人员应对在某些情况下可能存在的异常情况。。

  但是现实通常与愿望背道而驰。在大多数情况下,我们一直扔掉。例外是Runtime Exception的面包层,然后将其扔掉。这种解决方案在春季到处都出现。

  Lombok的@sneakythrows是消除此类模板代码。使用注释后,您不必担心异常的处理

  真正生成的代码

  显然,魔术被隐藏在Lombok.sneakythrow(t)中;也许每个人都认为这种方法是新的RuntimeException()等。

  读取代码可以看到整个方法实际上是核心逻辑是抛出(t)t;并使用仿制药迫使可传输到RuntimeException。

  尽管我们不是Runtime Exception。但这并不重要。由于JVM不在乎此。当始终存储到字节代码中时,没有任何通用信息。这只是欺骗Javac编译器。源代码中的注释。解释了。

  作者:Zhangsan_plus