/**
* 自定義異常
*Java中定義的異常有限,如果想描述程序中特有的異常情況,就需要自定義異常。
*summary:
* 1、在Java中允許用戶自定義異常,但自定義的異常類必須繼承自Exception或其子類。
* 2、throw關鍵字用於在方法中聲明拋出異常的實例對象,其語法格式如下:
* throw Exception異常對象
*/
class MyException extends Exception {
private int number;
public MyException(String message) {
super(message);
}
public MyException(String message, int number) {
super(message);
this.number = number;
}
public int getNumber() {
return number;
}
}
public class Example19 {
public static void main(String[] args) {
try {
divide(20, 0);
} catch (MyException my) {
System.out.println("你給的除數是:" + my.getNumber() + ",而我們要求是:"+ my.getMessage());
}
}
public static int divide(int a, int b) throws MyException {
if (b == 0) {
throw new MyException("除數不能爲零", b);
} else {
return a / b;
}
}
}
/**
* 自定義異常類
* (1)編寫自定義異常類MyException,該類繼承自Exception類,
* 類中只有含一個字符串參數msg的構造方法,
* 構造方法中只有一條語句super(msg)——調用父類的構造方法。
* (2)編寫自定義類person,類中只有兩個私有的變量,一個是字符串類型的name,
* 另一個是整型變量age;有兩個公有方法getAge()和setAge(int age),
* 其中setAge(int age)的功能是把參數age的值賦值給類person中的變量age
* (但要求age>0,否則拋出自定義異常MyException類的對象);getAge()方法返回變量age的值。
* (3)定義一個類 Test4 ,要求在類Test4中的main方法中類person的對象,
* 先調用setAge(int age)方法,再調用getAge()方法。
*/
class MyException extends Exception{
public MyException(String msg){
super(msg);
}
}
class Person{
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) throws MyException{
if(age>0){
this.age = age;
}else{
throw new MyException("年齡必須大於0");
}
}
}
class Test4{
public static void main(String[] args) throws MyException {
Person p1=new Person();
p1.setAge(1);
System.out.println("年齡爲"+p1.getAge());
}
}