Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

Java方法覆盖中的异常处理与Java异常在开发中的应用

Java方法覆盖中的异常处理

Java方法覆盖规则:

● 方法签名必须相同

● 方法返回值类型, 可以相同 ,子类方法的返回值类型可以是父类方法返回值类型的子类型

● 方法权限可以更宽泛

● 方法的异常不能大于父类方法的异常

Java异常在开发中的应用

自定义异常

package com.wkcto.chapter02.demo03;
//1) 定义一个类继承Exception
public class AgeOutOfBoundsException extends Exception {
	//2) 一般提供两个 构造方法
	public AgeOutOfBoundsException() {
		super();
	}
	//带有字符串参数的构造方法, 这个字符串是异常信息
	public AgeOutOfBoundsException(String message) {
		super(message);
	}
	
}
package com.wkcto.chapter02.demo03;

public class Person {
	private String  name;
	private int age;
	private String gender;
	
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", gender=" + gender + "]";
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}
	//4) throw语句所在的方法通过throws 声明该异常
	public void setAge(int age) throws AgeOutOfBoundsException {
		//必要时,在setter()方法中,对参数接收的数据进行合理 性验证
		if ( age >= 0 && age <= 130) {
			this.age = age;			
		}else {
			//年龄不合理 , 抛出一个异常
			//3)在需要的位置,通过throw抛出一个异常对象
			throw  new AgeOutOfBoundsException("年龄越界");
		}
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}
	
	
}
package com.wkcto.chapter02.demo03;
/**
 * 测试自定义异常
 * @author 蛙课网
 *
 */
public class Test {

	public static void main(String[] args) {
		
	/*	//创建Person对象
		Person lisi = new Person();
		//直接给lisi的各个字段赋值 , 可能会赋值一些无效的值
		lisi.name = "lisi";
		lisi.age = 188888;   	//没有语法错误, 没有意义,赋的值无效, age表示一个人的年龄
		lisi.gender = "男";
		System.out.println( lisi );*/
		
		//对字段进行封装后
		Person lisisi = new Person();
		lisisi.setName("lisis");
		//5)对受异常进行预处理
		try {
			lisisi.setAge( 188888 );
		} catch (AgeOutOfBoundsException e) {
			e.printStackTrace();
		}
		lisisi.setGender("妖");
		System.out.println( lisisi );
	}

}

总结:

1、理解异常是什么,异常的作用

2、掌握异常类的结构: Throwable, Error , Exception, 编译时异常, 运行时异常

3、掌握异常预处理的方法: 捕获处理, 抛出处理

4、理解异常预处理方式的选择?   定义方法,  调用方法

5、记住方法覆盖中的异常处理

6、掌握自定义异常的方法

全部教程