未报告的异常处理
问题描述:
我尝试了一个简单的代码,用户必须输入一个数字。如果用户输入一个字符,它会产生数字形式。这工作正常。现在,当我删除try catch块时,它显示错误。错误的含义代码和错误如下未报告的异常处理
import java.io.*;
class execmain
{
public static void main(String[] args)
{
//try
//{
int a;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
a=Integer.parseInt(br.readLine());// ---------error-unreported exception must be caught/declared to be thrown
System.out.println(a);
//}
//catch(IOException e)
//{
//System.out.println(e.getMessage());
//}
}
}
为什么会出现这个错误?
答
错误的含义是,当您尝试从输入流中读取字符时,您的应用程序未捕获到可能抛出的IOException。 IOException是一个检查的异常,Java坚持检查异常必须在封闭方法的签名中被捕获或声明。
要么将try ... catch
填满,要么通过添加throws IOException
来更改main
方法的签名。
答
readLine()
抛出IOException
其是检查的异常,这意味着它必须河北要么抓住,或者必须声明的方法,把它扔到。只需将声明添加到您的主要方法:
public static void main(String[] args) throws IOException
你也可以把它声明为throws Exception
- 玩具/学习计划,这只是罚款。
答
行:
a=Integer.parseInt(br.readLine());
将抛出IOException,因为br.readLine()抛出此异常。 Java会迫使你明确地捕获异常,就像你的注释代码块一样,或者你的方法必须明确地抛出这个异常:
public static void main(String[] args) throws IOException
嗨。当您发布代码时,您可以使用带有零和一个按钮的按钮来应用代码格式。 – 2010-10-26 07:47:09