当前位置: 首页 > 面试题库 >

例外-立即投掷并接住

佟寒
2023-03-14
问题内容

抛出异常并直接捕获它只是为了打印错误是否有意义?

if(...){

} else {
   try{
      throw new Exception();
   } catch (Exception e){
      e.printStackTrace();
   }
}

问题答案:

无需抛出并捕捉,您可以简单地调用:

new Exception().printStackTrace();

甚至更简单:

Thread.dumpStack();

您还可以从当前线程获取堆栈跟踪作为数组:

StackTraceElement[] trace = Thread.currentThread().getStackTrace();

如果要执行更详细的操作,例如在运行时检查堆栈(例如,获取调用方法的名称)。



 类似资料:
  • 1.对RCE来说是否脆弱?如何在Spring-boot中解决这个问题?2.如何压缩/重写异常消息,使客户端永远不会知道下面使用的是什么库?

  • 有人可以解释我什么时候使用关键字 throw new 有用.而不是在方法的签名旁边使用抛出? 我知道当方法抛出Checked Exception时。Java迫使我们通过将Exception处理到try-catch块中,或者通过在签名旁边的关键字throws指定将在其他地方完成,从而直接在方法中处理它。 然而,我很难理解何时使用关键字throw new是有用的,以及为什么。它与处理未选中的异常有关吗

  • 我正在用python运行下面的代码 我每次都会遇到下面的错误-有人能帮忙吗! OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK 2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或configure脚本),位于cvShowImage、file/Users/travis/buil

  • 我有两个类(SimManager和Sim),我想为它们创建模拟对象,然后使用存根方法。 测试在上面第9行抛出这两个错误跟踪。 第一: Java语言lang.VerifyError:org/mockito/cglib/core/reflectils at org。莫基托。cglib。果心KeyFactory$发电机。在org上生成Class(KeyFactory.java:167)。莫基托。cgli

  • 我在视图中有一个ImageView,并尝试用它显示一个WritableImage实例。我正在外线程中绘制它,并通过侦听ObjectProperty的更改事件将其传递给视图。 imageView应该准备好接收图像,它由我的主视图显示。但是这是一个不合法的例外 线程“Thread-4”Java . lang . illegalstateexception中的异常:不在FX应用程序线程上;当前线程=线程

  • 我有下面的代码,它按照预期工作: 我想知道是否有一种方法,只有一个orElseThrow-Part,或做它更少的冗余?