throws是在方法后面用,后面可以跟多个异常类throw是在方法内里用,后面一次只能跟一个异常类但是都是抛,感觉没什么区别啊比如public void play()throws Exception{ //这个也是抛给别人
//省略代码
}public void play()throws Exception{ //这个也是抛给别人
throw new Exception
}
我感觉throw有的功能,throws都有了,那为什么要创造2个功能一样的东西出来?有一个抛的就行,整俩一样的抛作甚?再说了,你如果不想抛,可以自己处理,用try-catch就搞定。懒得处理,就用throws抛出去就行了。那还要throw有什么用?有人说throw new Exception("我可以自定义信息啊")可以自定义信息,那在try-catch里的catch处理块里 你完全可以System.out.println("我这里也可以自定义信息啊");
这不效果也一样嘛。还有人说我可以加if判断语句,判断输入年龄是不是没超过100岁,然后配合throw使用,
那我完全可以if判断语句判断年龄,如果年龄不符合,就System.out.println("你输入的年龄不符")
这样if和try-catch也可以啊,而且效果和用throw new Exception("你输入的年龄不符")是一样的。
所以异常我感觉就2,要不你处理,要不你抛!但是现在整2个抛,throw和throws,不太明白都是抛有什么不同?既然throws能抛一个,或者多个,那还要throw只能抛一个的不就没意义了吗?
//省略代码
}public void play()throws Exception{ //这个也是抛给别人
throw new Exception
}
我感觉throw有的功能,throws都有了,那为什么要创造2个功能一样的东西出来?有一个抛的就行,整俩一样的抛作甚?再说了,你如果不想抛,可以自己处理,用try-catch就搞定。懒得处理,就用throws抛出去就行了。那还要throw有什么用?有人说throw new Exception("我可以自定义信息啊")可以自定义信息,那在try-catch里的catch处理块里 你完全可以System.out.println("我这里也可以自定义信息啊");
这不效果也一样嘛。还有人说我可以加if判断语句,判断输入年龄是不是没超过100岁,然后配合throw使用,
那我完全可以if判断语句判断年龄,如果年龄不符合,就System.out.println("你输入的年龄不符")
这样if和try-catch也可以啊,而且效果和用throw new Exception("你输入的年龄不符")是一样的。
所以异常我感觉就2,要不你处理,要不你抛!但是现在整2个抛,throw和throws,不太明白都是抛有什么不同?既然throws能抛一个,或者多个,那还要throw只能抛一个的不就没意义了吗?
解决方案 »
- For循环跳出问题?
- 用IO读取了一个文件,怎样把数据放入一个arraylist里面?
- socket中的IO类的疑惑!求救!!!
- 问一条练习题和学java的问题
- 正则表达式
- 求助java socket发送数据的问题
- 我的Tomcat出问题了,怎么办啊?急-_-b
- 自己写的一堆class想弄成一个package,请问java对于package命名有什么规则么?
- 怎么通过*.bat文件启动*.jar程序文件?
- 哪位老大给俺说说在学习java怎样养成良好的编程习惯,(对不起,原来只能给100分)
- 最近在学java,想买本参考书。。。求大神们推荐几本。。
- 今天看视频的第一个项目 各种各样的Exception啊 求解
throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种
异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成
员函数中抛出的异常的类型。如果异常的类型是Error或
RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序
的正常部分中是不期待出现的。 如果你想明确地抛出一个
RuntimeException,你必须用throws语句来声明它的类型。 throw语句
throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后
立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能
在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
throws是用来声明一个方法可能抛出的所有异常信息,而throw则是指抛出的一个具体的异常类型。此外throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。简单的区别
throws:将异常声明但是不处理
throw:就是自己进行异常处理
void mymethod throws myException{ if isWrong(){
throw myException("Something wrong");
}/* 如果main不想处理这个异常, 也可以抛出*/
/* public static void main(String[] args) throws myException */
public static void main(String[] args){
myException me = new myException();
try{
me.mymethod();
}catch(Myexception ex){
}