在主线程前抛出关键字

时间:2015-08-04 10:26:28

标签: java exception

我的问题是当我们使用“throws”方法抛出一个异常时,为什么我们需要在main方法前面给它,尽管已经在相应的方法中抛出它,这需要像add()方法一样抛出异常我正在使用Inputstream reader来获取输入,所以我在它前面使用了“throws IOException”并执行了代码。但是错误是在主线程中处理IOexception。所以,当我在主线程前面附加“throws IOException”时,它执行得很好。但我不知道为什么错误来自主线程部分,因为add()方法是生成异常的那个,我处理它。 请解释一下。 :)

代码:

class A { 

BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); 

public void add() throws IOException { 
int a=Integer.parseInt(br.readLine()); 
int b=Integer.parseInt(br.readLine()); 
System.out.println("Value after addition : "+(a+b)); 
} 

public static void main(String args[]) throws IOException {
 A a=new A(); a.add(); 
} 
}

2 个答案:

答案 0 :(得分:0)

  

但是我不明白为什么错误出现在主线程部分,因为add()方法是生成异常的那个并且我处理它。

不,你没有在那里处理它。你让它传播到调用方法。

处理异常意味着// M/d/yyyy CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat.ShortDatePattern // yyyy-MM-dd CultureInfo.CreateSpecificCulture("sv-SE").DateTimeFormat.ShortDatePattern 并执行适当的操作:

catch

答案 1 :(得分:0)

当你使用" throws"你不会对待你的例外。你只是说你不想在那里治疗它,你会在其他地方(你称之为方法的地方)对待它。所以从方法中抛出它意味着你必须从主要或任何地方对待它你称之为方法的其他地方