我知道您可以使用try-catch块对自定义消息抛出异常,例如:
try {
process...
} catch (IOException e) {
throw new IOException(..)
}
但是如果我们在实用程序类中有一个方法,例如:
public void processFiles() throws IOException {
...
}
然后我们进入服务类,如下所示:
public void method() throws IOException {
Response response = new Response()
try {
UtilityClass.processFiles()
} catch (IOException e) {
response.setMessage("Error processing files: " + e.getMessage());
return new ResponseEntity<Response>(response, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
有没有一种方法可以自定义设置来自实用程序类方法<code>processFiles()</code>的消息及其<code>抛出的IOException</code>,而不是在该方法内部使用try-catch块?
您无法设置消息,但可以创建一个新的异常,其中包含所需的消息和相同的堆栈跟踪:
} catch (IOException e) {
IOException ee = new IOException ("your message");
ee.setStackTrace(e.getStackTrace());
throw ee;
}
当然,如果< code>e是一个< code > FileNotFoundException ,那么这将把它作为一个IOException抛出,而不是一个子类,所以它不会达到相同的效果。
抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因
问题内容: 我目前正在使用play2框架。 我有几个正在抛出的类,但是play2s全局处理程序使用throwable而不是异常。 例如我的一门课是抛出一个。我是否可以检查可抛物体(如果是)? 问题答案: 您可以使用它来检查它是否存在。 例: 假设是参考。
我是一名Java编程新手(实际上已经在学习),我对如何处理不同的消息有些怀疑。 我的目标是将这些不同的消息包含在同一个类(CustomExcpse类)中,以避免在从其他类抛出新CustomExceptions的每个方法上一遍又一遍地编写相同的字符串。 到目前为止,我编码: > 一个自定义异常类,它从异常扩展而来,具有不同的消息(在示例中只有两个,但还有更多)作为Strings包含,当然还有构造函数
问题内容: 除了抛出,这意味着我方法的所有调用者都需要捕获Exception(可以包含RuntimeExceptions),我想在出现问题时抛出一种更特定类型的异常。 我可以创建自己的扩展了Exception或其他异常类型的异常类型,但是我很好奇是否可以重用Java语言所附带的一些异常,例如: IllegalArgumentException UnsupportedOperationExcepti
我正在尝试使用Spring Boot 2.1给出的验证JWT令牌内的声明。问题是Spring总是使用默认异常消息抛出异常: 即使我创建了一个扩展ClientAuthenticationException的自定义异常,我也会收到相同的异常消息。 当JWT声明验证失败时,我想修改异常消息。这是我的配置类: 这是我的JWTClaimVerifier类: 当JWT声明验证失败时,我希望我的自定义异常消息有
我读过这段代码,其中接口抛出异常,但实现它的类没有抛出异常或捕获异常,这是为什么?它在java中是合法的还是安全的?