为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我会收到“未处理的异常类型IOException”?

为什么我会收到“未处理的异常类型IOException”?

倚天杖 2019-09-12 12:10:42
为什么我会收到“未处理的异常类型IOException”?我有以下简单的代码:import java.io.*;class IO {     public static void main(String[] args) {            BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));            String userInput;            while ((userInput = stdIn.readLine()) != null) {           System.out.println(userInput);        }     }}我收到以下错误消息:----------1. ERROR in io.java (at line 10)     while ((userInput = stdIn.readLine()) != null) {                         ^^^^^^^^^^^^^^^^Unhandled exception type IOException----------1 problem (1 error)roman@roman-laptop:~/work/java$ mcedit io.java有人有什么想法吗?我只是想简化总和网站上给出的代码(这里)。我过度简化了吗?
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您应该在主方法中添加“throws IOException”:

public static void main(String[] args) throws IOException {

您可以在JLS中阅读有关已检查异常(特定于Java)的更多信息。


查看完整回答
反对 回复 2019-09-16
?
杨魅力

TA贡献1811条经验 获得超5个赞

Java有一个称为“已检查异常”的功能。这意味着存在某些类型的异常,即那些子类Exception而不是RuntimeException,如果方法可能抛出它们,它必须在它的throws声明中列出它们,例如:void readData()throws IOException。IOException就是其中之一。

因此,当您调用在其throws声明中列出IOException的方法时,您必须在您自己的throws声明中列出它或捕获它。

存在检查异常的基本原理是,对于某些类型的异常,您不能忽略它们可能发生的事实,因为它们的发生是非常常见的情况,而不是程序错误。因此,编译器可以帮助您不要忘记引发此类异常的可能性,并要求您以某种方式处理它。

但是,并非Java标准库中所有已检查的异常类都符合此基本原理,但这是一个完全不同的主题。



查看完整回答
反对 回复 2019-09-16
  • 3 回答
  • 0 关注
  • 551 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信