如果有任何异常,我想要抛出我的java脚本。问题是,我们在我的脚本中扩展了一个超类但是在那个超类中有一个被称为ScriptFailureException
的异常被捕获,而超类是在我们无法编辑的JAR中。我们希望阻止该异常被捕获。是否可以防止捕获该异常,或者是否有任何其他方法可以使我们的脚本在这种情况下失败。我尝试了System.Exit()
等方法,但它们没有用。我们正在通过TestNG运行我们的脚本。
答案 0 :(得分:3)
首先,Java不是脚本语言,也不是脚本的概念。你不应该使用术语脚本,而是术语“类”,“方法”,“程序”。
要回答您的问题,如果方法捕获异常,则会捕获异常,并且您无法对其执行任何操作。但是,您可能会抛出另一个不会被超类方法捕获的异常类型。
答案 1 :(得分:0)
否,除非超级类让你知道ScriptFailureException
以其他方式发生而不是抛出它。另一种方法之一可以是例如方法调用的返回值为null。
答案 2 :(得分:0)
Jar代码捕获异常时会采取什么操作?事件发生后你能发现这个动作吗?例如,如果Jar代码写入日志,那么您可以检查日志以查看是否在那里记录了该异常,然后抛出了您自己的新异常。
答案 3 :(得分:0)
您可以通过抛出错误来完全使Java失败。
throw new Error("Oh dear");
虽然那很麻烦。
尝试定义自己的异常并抛出它。
public class CustomException extends Exception { }
// somewhere else
throw new CustomException("Some detail");
答案 4 :(得分:0)
一个小技巧是将ScriptFailureException
声明为RuntimeException
我认为这不是执行代码的最佳方式,但它有效。 <{1}}对象不需要显式的try / catch块。
然后,您必须声明RuntimeException
问候!