在Java中有一个错误处理机制,throws抛出异常,这个经常可以见到,但是throw好像很少见,
什么情况下,会抛出异常
- 调用了一个抛出检查型异常的方法,如,FileInputStream
- 检测到一个错误,并且利用throw语句抛出异常
- 程序出现错误,例如,a[-1]会抛出2一个非检测型异常,
- Java虚拟机或运行时库出现内部错误
但是throw和throws都是抛出异常,它们究竟有什么区别。
throw
throw是语句抛出一个异常
语法:throw(异常对象);
如:throw e;
thows
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}
如: public void function() throws Exception{......}
package 异常;
public class Test {
public static void function() throws NumberFormatException{
if(true) {
throw new NumberFormatException();
}
}
public static void main(String[] args) {
try{
function();
}catch(Exception e) {
System.out.println("非数据型不能转换:");
}
}
}
?由上述的代码段可以知道,里面的throws一般是在最开始方法的尾部,而throw一般是在方法里面。
|