java - 如何编写抛出异常的方法头

标签 java exception methods filenotfoundexception fileinputstream

“鉴于 FileInputStream 的构造函数抛出 FileNotFoundException,它是 异常,为一个名为 process 的公共(public)方法编写 header ,该方法采用 String 参数 并且不返回任何内容,并且其主体实例化了一个 FileInputStream 对象并且不包含 try-catch 语句。”

我知道这是一个太简单的问题,但我想确保我没有以愚蠢的方式搞砸。此外,不确定是使用 FileNotFoundException 还是仅使用 Exception 或 IO 等。

public process(String file) throws FileNotFoundException {

    FileInputStream file = new FileInputStream("stuff.txt");
}

最佳答案

throws 子句的内容很好。抛出 IOException 并不可怕,但最好具体一些。调用代码仍然可以将其视为 IOException。

通常你不应该抛出 Exception 除非特殊情况(Junit 方法和类似的情况,所有抛出的东西都会被异常处理程序捕获),因为它强制所有调用它的东西进入处理 Exception 的位置(它可能不是这样做的合适地方,最好让大多数异常冒泡到一个可以统一处理的地方)或者也抛出异常,然后将其他调用方法放在相同的位置。

您的方法声明无效,因为没有返回类型。不返回任何内容的方法声明为返回类型为 void。

对方法参数使用与局部变量相同的名称是行不通的,您应该使它们不同。构造函数调用应将方法参数作为参数(而不是硬编码字符串文字)。 (+1 到 geceo's answer 指出那个,我错过了那个。)

作为建议,如果您的代码使用反射(reflect)变量内容的名称,您的代码会更清晰。调用一个FileInputStream file 不太清楚,最好叫它inputStream。调用一个Stringfile不太清楚,还是调用filename比较好。

关于java - 如何编写抛出异常的方法头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28899425/

相关文章:

c# - .NET Core - JWT - SecurityTokenNoExpirationException

java - 创建对象并调用方法时出错,: cannot find symbol错误

java - 有没有办法在 Java 中传递方法引用?

Java:如何向组件添加快捷方式

java - 反串码错误

java - 在 Selenium 测试自动化中加载驱动程序可执行文件

java - 获取 JSObject 或 JSContext 来运行小程序

c - 链表 : Exception thrown: read access violation. B 为 0xCDCDCDCD

java - 如何确保 @ExceptionHandler(Exception.class) 在 Spring Boot 中最后被调用?

javascript - 对象函数没有方法(我不是 javascript 编码器)