Copyright: Reprinted please note the name of the source https://blog.csdn.net/meism5/article/details/90414147
The difference between throw and the throws?
throw:
- Throw some exception object representation within
- If the exception object is non-RuntimeException when you need to declare a method that is coupled with the need to add an exception is thrown throws statement or in vivo try catch handle the exception, or the compiler error
- Throw statement to execute the block of statements is not executed later
throws:
- Use throws on the definition of the method indicates that this method may throw some abnormality
- The need for exception handling by the caller method
package constxiong.interview;
import java.io.IOException;
public class TestThrowsThrow {
public static void main(String[] args) {
testThrows();
Integer i = null;
testThrow(i);
String filePath = null;
try {
testThrow(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 测试 throws 关键字
* @throws NullPointerException
*/
public static void testThrows() throws NullPointerException {
Integer i = null;
System.out.println(i + 1);
}
/**
* 测试 throw 关键字抛出 运行时异常
* @param i
*/
public static void testThrow(Integer i) {
if (i == null) {
throw new NullPointerException();//运行时异常不需要在方法上申明
}
}
/**
* 测试 throw 关键字抛出 非运行时异常,需要方法体需要加 throws 异常抛出申明
* @param i
*/
public static void testThrow(String filePath) throws IOException {
if (filePath == null) {
throw new IOException();//运行时异常不需要在方法上申明
}
}
}
More columns: