在 Java 中重新抛出异常而不丢失堆栈跟踪 [英] Rethrowing exceptions in Java without losing the stack trace

查看:32
本文介绍了在 Java 中重新抛出异常而不丢失堆栈跟踪的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 C# 中,我可以使用 throw; 语句重新抛出异常,同时保留堆栈跟踪:

In C#, I can use the throw; statement to rethrow an exception while preserving the stack trace:

try
{
   ...
}
catch (Exception e)
{
   if (e is FooException)
     throw;
}

Java 中有没有类似的东西(不会丢失原始堆栈跟踪)?

Is there something like this in Java (that doesn't lose the original stack trace)?

推荐答案

catch (WhateverException e) {
    throw e;
}

将简单地重新抛出您捕获的异常(显然,周围的方法必须通过其签名等来允许这一点).异常将保持原始堆栈跟踪.

will simply rethrow the exception you've caught (obviously the surrounding method has to permit this via its signature etc.). The exception will maintain the original stack trace.

这篇关于在 Java 中重新抛出异常而不丢失堆栈跟踪的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆