在Java中是否有一种全局处理异常的方法?
在C#中,我们可以调用一个方法,该方法接受一个函数或一个操作,并在try-catch中执行该函数或操作。通过这样做,我们可以在一个地方处理所有异常,使其更易于管理 因为Java没有委托,所以不能以同样的方式执行。还有别的选择吗在Java中是否有一种全局处理异常的方法?,java,inheritance,exception-handling,Java,Inheritance,Exception Handling,在C#中,我们可以调用一个方法,该方法接受一个函数或一个操作,并在try-catch中执行该函数或操作。通过这样做,我们可以在一个地方处理所有异常,使其更易于管理 因为Java没有委托,所以不能以同样的方式执行。还有别的选择吗 我们有两个类:A和B。B是A的子类。B中的所有方法都覆盖A中的方法 我必须在B中的方法中处理所有异常,还是有办法在a中处理它,然后在B中重新调用?我的假设是,我必须在B中处理这一切,但我想确认这一点。C#委托对您描述的内容不是必不可少的,它们只是传递对任意函数引用的另一
我们有两个类:A和B。B是A的子类。B中的所有方法都覆盖A中的方法 我必须在B中的方法中处理所有异常,还是有办法在a中处理它,然后在B中重新调用?我的假设是,我必须在B中处理这一切,但我想确认这一点。C#委托对您描述的内容不是必不可少的,它们只是传递对任意函数引用的另一种方式。普通对象也通过多态性特性提供了同样的功能 在经典Java中,可以传递
Runnable
或Callable
的实现,并且可以提供匿名类的实现。在Java8中,您可以提供具有lambda语法的实现
public static void runWithExceptionHandling(RunnableExc r) {
try { r.run(); }
catch (xxxException e) { ... }
}
public static void main(String[] args) {
runWithExceptionHandling(() -> Files.readAllLines(Paths.get("/x/y"), UTF_8));
runWithExceptionHandling(() -> { throw new xxxException(); });
}
interface RunnableExc { void run() throws Exception; }
setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler eh)大致完成您要查找的任务什么?请出示相关的C#代码。委托与异常处理有什么关系?请考虑将函数或操作作为参数的方法。在该方法中,它在try-catch语句中执行函数/操作。因此,函数/操作中的所有重试异常都可以用这个方法处理。为什么不能用Java中的
函数、可运行的或可调用的来处理呢?我不知道我可以,这就是为什么我问。代表们与此完全无关。lambda语法也是如此。这只是一个设计问题。同样值得指出的是,如果您愿意,您可以用同样的方式组织所有异常处理代码(除了异常抛出代码)。