0
点赞
收藏
分享

微信扫一扫

java自定义异常处理实例(throws)

例题:
自己设计一个异常类NegativeException,编写People类,拥有属性name , age,salary;在年龄、工资设置为负值时,抛出该异常,并进行简单的处理。

思路:
自定义异常类可以通过继承Exception类来实现,一般格式为:

class  自定义异常类名  extends Exception {
      异常类体 
}

代码:
people类:

package 异常处理;
public class People {
	private  int age;
	private  double salary;
	private String name;
	
	public void setAge(int age) throws NegtiveException {
		if(age < 0){                                 //如果年龄小于0则抛出异常
				throw new NegtiveException();
		}
		
		else {
			this.age = age;
		}
	}
	
	public void setSalary(double salary) throws NegtiveException {
		if(salary < 0)                         //如果薪水小于0则抛出异常
		{
			throw new NegtiveException();
		}
		else {
			this.salary = salary;
		}
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public void showInfo() {
		System.out.println("name:" + name +"  " + "age:" + age + "  "+"salary:" + salary);
	}
}

自定义异常类:

package 异常处理;

public class NegtiveException extends Exception{            //发现异常的处理
	public void showAge(int age) {
		if(age < 0)
		System.out.println("年龄不能是负数,默认值为0");
	}
	
	public void showSalary(double salary) {
		if(salary < 0)
		System.out.println("工资不能是负数,默认值为0");
	}
}

主类:

package 异常处理;
import java.util.*;
public class Demo {
	public static void main(String[] args) throws NegtiveException {
		People people = new People();
		Scanner  scanner = new Scanner(System.in);          
		System.out.println("请输入姓名:");
		String name  = scanner.next();          //输入姓名        
		System.out.println("请输入年龄:");
		int age = scanner.nextInt();            //输入年龄
		System.out.println("请输入工资:");
	    double salary = scanner.nextDouble();     //输入工资
		try {                                 //执行可能出现异常的程序代码
			people.setName(name);
			people.setAge(age);
			people.setSalary(salary);
			
		}
		catch(NegtiveException e) {            //try中出现异常则执行此处理异常
			e.showAge(age);
			e.showSalary(salary);
		}
		
		finally {                             //无论是否发生异常,定执行
			people.showInfo();
		}
	}
}

举报

相关推荐

0 条评论