The difference between throw and the throws?

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:

Guess you like

Origin blog.csdn.net/meism5/article/details/90414147