java中接口异常处理

问题描述 投票:0回答:2

我想问在接口中处理异常是一个好的做法还是明智的做法?例如:

 public interface myInterface{
  String readFile() throws IOException;
  String printValues() throws IOException;
}

这是处理异常的好方法吗?

java interface
2个回答
3
投票

Java 中的接口方法可以声明方法抛出特定异常。这是最佳实践(当没有过度使用时),因为接口定义了可以抛出什么类的异常。

检查异常的设计要求调用者在方法上使用 try-catch 或声明 throws。如果接口中的方法未声明异常,则该接口的实现无法重写该方法并引发已检查的异常。如果没有正确记录或理解,抛出未经检查的异常(RuntimeException 或其子类)的实现类可能会成为下游的潜在错误。

对于常见的异常,最佳实践是在接口中声明异常。许多 java.io 接口都遵循这一最佳实践。

示例:

public interface Closeable {

  void close() throws IOException;

}

有关更多详细信息,请参阅本教程,讨论检查异常与非检查异常。 https://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html

查看相关问题:
用java中的接口和类处理异常


0
投票

取决于,如果您认为调用者知道重写类可以抛出哪些异常并且客户端可以适当地处理它是有用的,例如向用户显示一条消息。

例如您有一个 ATM 应用程序,提款方法抛出两个自定义异常:InvalidPinException 和 InsufficientBalanceException,然后客户端可以作为调用者处理这些异常并向用户显示适当的消息。

从接口抛出这些异常意味着所有实现都可以抛出这些异常,并且作为调用者,您必须处理或重新抛出。

© www.soinside.com 2019 - 2024. All rights reserved.