JAVA异常小结

1.所谓异常就是程序员在编程过程中的逻辑错误,在JAVA里面有2类异常,一类是明文提示你必须要处理的异常:如

File fl = new File("");
fl.createNewFile();

  如上代码,如果你不处理,编译无法通过。

还有一类是不明文提示你要处理的异常:如NullPointerException

public class test{

  private String s;
  public static void main(String[] args){

      System.out.println(s);
   
  }
}

 这时,代码编译能通过,但是在运行时会出现NullPointerException的情况。

 

2.在JAVA里如何处理异常:

  在JAVA里提供了2种处理异常的办法:一种是使用try catch,另一种是使用throws,throw将异常抛出,让下一个调用者去处理。示例代码如下:

public class exception {

	private String str;

	/**
	 * 一个异常的测试类
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		File fl = new File("");

		if (fl.exists()) {
			System.out.println("文件存在!");
		} else {
			//使用try catch语句处理异常
			try {
				fl.createNewFile();
			} catch (Exception ef) {
				ef.printStackTrace();
			} finally {
				return;
			}
		}
            }
}

 

 

public class exception {

	private String str;

	/**
	 * 一个异常的测试类
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		File fl = new File("");

		exception ex = new exception();
		try {
			ex.testex();
		} catch (Exception def) {

			def.printStackTrace();
		}
	}

	// **
	// * 测试异常的抛出方法
	// *//
	public void testex() throws Exception {

		if (str.equals("123")) {
			System.out.println("Don't have NullPointException");
		} else {
			System.out.println("NullPointException");
		}

	}

	
}

 

 以上代码中的exception类的对象在调用抛出异常的testex()方法时必须处理异常,否则编译无法通过。

 

3.如何自定义异常

  首先创建一个自定义异常类,让它继承Exception类,然后在具体使用时用throws关键字抛出异常,代码如下:

 

package ExceptionT;

public class DefException extends Exception{

	/**
	 * 重写构造函数
	 */
	public DefException(String message){
		super(message);
	}
	

}

 

package ExceptionT;

import java.io.File;

public class exception {

	private String str;

	/**
	 * 一个异常的测试类
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		exception ex = new exception();
		try {
			ex.testthrow();
		} catch (DefException def) {
			//打印出异常信息
			System.out.println(def.toString());	
			
		}
	}

	/**
	 * 测试异常的抛出方法
	 */
	public void testex() throws Exception {

		if (str.equals("123")) {
			System.out.println("Don't have NullPointException");
		} else {
			System.out.println("NullPointException");
		}

	}

	/**
	 * 测试异常的抛出方法
	 */
	public void testthrow() throws Exception {

		try {
			this.testex();
		} catch (Exception ef) {
			throw new DefException("自定义的异常");
		}

	}
}

 

代码运行的结果是  ExceptionT.DefException: 自定义的异常。

    那么如何将一个异常定义成像NullPointerException这样不明文提示程序员要处理的异常呢,经过一番询问,得知只要让自定义的异常去继承RuntimeException即可.代码如下:

 

package ExceptionT;

public class DefException extends RuntimeException{

	/**
	 * 重写构造函数
	 */
	public DefException(String message){
		super(message);
	}
	

}

 

4.与异常处理相关的一些关键字。

  try catch finally

  throws

  throw

 

 

上面关于JAVA异常机制的总结还是很有限的,如果里面有些不正确的内容欢迎大家指正,帮助我进步。

 

你可能感兴趣的:(java,编程)