java 异常之手动抛出 和 自动抛出

java 异常之手动抛出 和 自动抛出

    • 1.java异常处理机制的两类

1.java异常处理机制的两类

  1. 抓:异常的处理,有两种方式
    ① try-catch-finally
    ② throws
  2. 抛:
    ① 自动抛出
    可以理解为所有没有使用throw关键字的异常处理都是自动抛出,由jvm进行判断和抛出。
    ②手动抛出
    throw + 异常类的对象
  • 》异常类可以是现成的,也可以是自己创建的异常类,
  • 抛出异类的类型:若是RuntimException,可以不用显示处理。
  • 若是一个Exception,必须要显示的处理。
/* 
 *1.手动抛出一个异常的例子
 */
public class TestException3 {
	public static void main(String[] args) {
		Circle c1 = new Circle(2.1);
		Circle c2 = new Circle(2.1);
		System.out.println(c2.compareTo(c2));
		System.out.println(c1.compareTo(new String("44")));
	}
}
class Circle{
	private double radius;

	public Circle(double radius) {
		super();
		this.radius = radius;
	}

	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}
	//比较两个圆的半径谁大
	public int compareTo(Object obj) {
		if(this == obj) {
			return 0;
		}
		else if(obj instanceof Circle) {
			Circle c = (Circle)obj;
			if(this.radius > c.radius) {
				return 1;
			}else if(this.radius == c.radius){
				return 0;
			}else {
				return -1;
			}
		}else {
			//因为在这里返回声明都不适合,手动的抛出一个异常
			//运行时异常可以不用显示处理,在运行的时候,抛出。
			throw  new RuntimeException("传入的类型有误");
//			throw  new Exception("传入的类型有误");
			//非RuntimeException必须在出现的时候显示处理
		}
	}
}

你可能感兴趣的:(java 异常之手动抛出 和 自动抛出)