java 异常的使用 异常处理 throws throw Exception

	关键词:java  异常类  异常处理   throws  throw Exception
  1. 如果一个类称为异常类,必须要继承异常体系(Exception,RuntimeException),因为只有异常体系的子类才具有可抛性

  2. 编译时检测异常:只要是Exception和其子类都在编译时检测,除了特殊子类RuntimeException

  3. 自定义异常时只能继承Exception或者 RuntimeException

  4. throws和thorw的区别
    (1)throw是在代码块内的,即在捕获方法内的异常并抛出时用的;

    (2)throws是针对方法的,即将方法的异常信息抛出去

    (3)可以理解为throw是主动(在方法内容里我们是主动捕获并throw的),而throws是被动(在方法上是没有捕获异常进行处理,直接throws的)

  5. 如果调用针对throws的方法,那调用方法需要使用try_catch,进行异常的处理

  6. try{
    //需要检测的代码
    }catch(异常类 变量){
    //处理异常的代码
    }

package demo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.swing.plaf.synth.SynthStyle;

public class Test {

	public static void main(String[] args)

	{

		try {
			throwChecked(5);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
		}
		throwRuntime(3);

	}

	public static void throwChecked(int a) throws Exception

	{

		if (a > 0)

		{
			// 自行抛出Exception异常,必须处于try块中,或带throws声明的方法中
			throw new Exception("a不合法");
		}

	}

	public static void throwRuntime(int a)

	{

		if (a > 0)

		{

			// 自行抛出Runtime异常,既可以显示捕获该异常,也可以不用理会该异常,交给方法调用者处理

			throw new RuntimeException("a1不合法");

		}

	}

}

class MyselfException extends RuntimeException {

	MyselfException() {
		// TODO Auto-generated constructor stub
	}

	MyselfException(String msg) {
		super(msg);
	}

}

你可能感兴趣的:(java,android,异常处理,throws,throw,Exception)