我一直致力于完成两件事的代码:
有一个执行计算(逻辑)的类
有一个显示结果的类。
我想知道是否可以在Display类中使用try / catch语句,我将尝试捕获源自逻辑类的异常。
Display将执行类似于logic.execute(输入)的行;
我能够创建一个自定义异常类,其中以下内容放在显示类中:
try{
logic.execute(input);
}catch(CustomException e){
//print statements
}
但是我希望能够准确打印出现的错误,例如NullPointerException。
当我说打印时,我的意思是在控制台输出。 (但它必须来自显示类)
如果可能存在这种怪异,请告诉我。
谢谢你们!
答案 0 :(得分:2)
是的,这是可能的。
您将需要自定义异常类来扩展RuntimeException
而不是Exception
,否则编译器会抱怨您没有捕获您抛出的异常。
请参阅此帖子:Throwing custom exceptions in Java
简单的工作示例:
public class ExceptionTest
{
public static void main(String[] args)
{
SomeClass myObject = new SomeClass();
myObject.testFunction();
}
}
public class SomeClass
{
private SomeOtherClass someOther = new SomeOtherClass();
public void testFunction()
{
try{
someOther.someOtherFunction();
}
catch(Exception e){
System.out.println(e.toString());
}
}
}
public class SomeOtherClass
{
public void someOtherFunction()
{
throw new CustomException("This is a custom exception!");
}
}
public class CustomException extends RuntimeException
{
public CustomException(String message)
{
super(message);
}
}