在不丢失堆栈跟踪的情况下在 Java 中重新引发异常
在 C# 中,我可以使用该语句在保留堆栈跟踪的同时重新引发异常:throw;
try
{
...
}
catch (Exception e)
{
if (e is FooException)
throw;
}
Java中是否有类似的东西(不会丢失原始堆栈跟踪)?
在 C# 中,我可以使用该语句在保留堆栈跟踪的同时重新引发异常:throw;
try
{
...
}
catch (Exception e)
{
if (e is FooException)
throw;
}
Java中是否有类似的东西(不会丢失原始堆栈跟踪)?
catch (WhateverException e) {
throw e;
}
将简单地重新抛出您捕获的异常(显然,周围的方法必须通过其签名等允许这样做)。该异常将保留原始堆栈跟踪。
您还可以将异常包装在另一个异常中,并通过将异常作为可抛出项作为原因参数传入来保留原始堆栈跟踪:
try
{
...
}
catch (Exception e)
{
throw new YourOwnException(e);
}