在java中的方法后面加个throws抛出异常有什么作用?我试了不加的运行效果一样
publicstaticvoidshow()throwsException{Scannerinput=newScanner(System.in);System.out.p...
public static void show() throws Exception {
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数:");
int num = input.nextInt();
System.out.println("请输入除数");
int num1 = input.nextInt();
System.out.println(String.format("%d / %d = %d",num,num1,num/num1) );
}
public static void main(String[] args) {
try{
show();
}catch(Exception e){
System.out.println("输入错误,除数和被除数必须是整数");
System.out.println("未知异常");
e.printStackTrace();
}finally{
System.out.println("谢谢使用本程序");
}
} 展开
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数:");
int num = input.nextInt();
System.out.println("请输入除数");
int num1 = input.nextInt();
System.out.println(String.format("%d / %d = %d",num,num1,num/num1) );
}
public static void main(String[] args) {
try{
show();
}catch(Exception e){
System.out.println("输入错误,除数和被除数必须是整数");
System.out.println("未知异常");
e.printStackTrace();
}finally{
System.out.println("谢谢使用本程序");
}
} 展开
7个回答
展开全部
把异常抛给调用它的地方,如果你不加的话,main里的try catch是拿不到 这个异常的。也就是说,你show方法出错了。上一次也不知道怎么回事。。。
同时,你加上throw exception。调用 的地方就必须try catch,不然编译都不过。。这样代码就更健壮了。不会跟c语言一样,一出错,没处理。系统可能就崩溃了。
同时,你加上throw exception。调用 的地方就必须try catch,不然编译都不过。。这样代码就更健壮了。不会跟c语言一样,一出错,没处理。系统可能就崩溃了。
更多追问追答
追问
方法后面没加throws Exception ,main里面也捕捉到异常了,怎么回事?
追答
默认为把exception往上一级抛。所以throw exception。但如果你没加这一句。main方法里,可以不用try catch。如果加了。main方法必须try catch。或者再在后面throw exception。
这个要看经验。。。你现在很难理解。
我觉得应该是这样。
如果你的方法是别人要调用的,你又明知道可能会出错异常的代码。比如算数。输入输出流。当然,你要是简单到可以肯定不会出异常,就可以不做处理。你就应该把代码内部先try catch。然后再throw 一个自定义异常。这样别人就知道出在哪里。
ublic static void show() throws BusinessException{
try{
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数:");
int num = input.nextInt();
System.out.println("请输入除数");
int num1 = input.nextInt();
System.out.println(String.format("%d / %d = %d",num,num1,num/num1) );
}catch(Exception e){
throw new BusinessException("显示异常",e);
}
}
BusinessException是自定义异常类。
展开全部
方法后边加throws XXX 声明该方法将抛出指定异常(Throwable 及其子类)。调用该方法的方法中需对可能抛出的异常做处理,例如使用try catch块包裹,或调用方法也声明向上抛出该异常或异常的父类。
方法后不加throws XXX,且其内部并没有trh catch块,则出现异常时默认向上抛出。
何时抛出异常,何时捕获并处理异常,什么是运行时异常,什么是非运行时异常请自行查找。
方法后不加throws XXX,且其内部并没有trh catch块,则出现异常时默认向上抛出。
何时抛出异常,何时捕获并处理异常,什么是运行时异常,什么是非运行时异常请自行查找。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为下面主函数有try catch,所以上面的exception可以不加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用throws和让系统自动抛出异常的区别:
也没啥区别,系统自动抛出也是一层一层往上抛的,就是调用有throws修饰过的方法的程序必须使用try catch括起来,就相当于一个编译期的异常。
也没啥区别,系统自动抛出也是一层一层往上抛的,就是调用有throws修饰过的方法的程序必须使用try catch括起来,就相当于一个编译期的异常。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类在哪里!static方法的调用得把类名加上!
追问
我的方法是类方法,不加也可以运行
追答
比如类名为A 这样A.show()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询