java面试题网

普通会员

483

帖子

9

回复

187

积分

楼主
发表于 2019-08-26 15:24:39 | 查看: 5072| 回复: 0

java方法覆盖中的异常处理及异常在开发中的应用

java方法覆盖中的异常处理及异常在开发中的应用

方法覆盖中的异常处理

方法覆盖规则:

  1. 方法签名必须相同
  2. 方法返回值类型, 可以相同 ,子类方法的返回值类型可以是父类方法返回值类型的子类型
  3. 方法权限可以更宽泛
  4. 方法的异常不能大于父类方法的异常

异常在开发中的应用

自定义异常

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 );
	}

}

总结:

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

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

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

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

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

掌握自定义异常的方法


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1151_1_1.html


java面试题交流群:327440556

上一篇:java中数组的定义 下一篇:java异常处理
您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018