- method
processExceptions
() 应该调用方法BEAN.methodThrowExceptions
并处理异常:
1.1。如果发生异常FileSystemException
,则通过调用方法记录它BEAN.log
并向前抛出
1.2. 如果发生异常CharConversionException
或任何其他IOException
情况,只需通过调用方法记录它BEAN.log
添加您在 2.1 中转发的异常的类/类型。到
processExceptions()
方法签名。处理方法中剩余的异常
main()
并记录。利用try..catch
我尝试了不同的解决方案。它有效,但不是应有的。throws
in 方法的正确位置是什么。或者也许我根本不应该使用它们?如果我不放置它们,我将无法使用throw
. 请帮忙,我真的很感激你的时间。
public class Solution {
public static StatelessBean BEAN = new StatelessBean();
public static void main(String[] args) {
try{
processExceptions();
}
catch (CharConversionException e){
BEAN.log(e);
}
}
public static void processExceptions()throws CharConversionException {
try{
BEAN.methodThrowExceptions();
}
catch (CharConversionException e){
BEAN.log(e);
throw e;
}
catch (FileSystemException e){
BEAN.log(e);
}
catch (IOException e){
BEAN.log(e);
}
}
public static class StatelessBean {
public void log(Exception exception) {
System.out.println(exception.getMessage() + ", " + exception.getClass().getSimpleName());
}
public void methodThrowExceptions() throws CharConversionException, FileSystemException, IOException {
int i = (int) (Math.random() * 3);
if (i == 0)
throw new CharConversionException();
if (i == 1)
throw new FileSystemException("");
if (i == 2)
throw new IOException();
}
}
}