練習題:
1.計算圓的面積,半徑不能為零和負數
package com.oracle.Demo01; public class Demo02 { // 寫一個計算圓的面積的方法,傳一個半徑,返回面積 public static void main(String[] args) { double s=0; s = area(-4); System.out.println(s); } public static double area(double r){ try { if(r<=0){ throw new RuntimeException(); //RuntimeException 運行異常,不會聲明,不會處理異常,直接報錯並且停止 } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } double s=Math.PI*r*r; return s; } }
2.求平均數,參數不能為負數
package com.oracle.Demo01; import java.util.Scanner; public class Demo03 { //現在要創建一個檢測負數的異常類,如果是正數,則拋出異常 public static void main(String[] args){ /*double s=0; s = area(9); System.out.println(s);*/ //輸入任意參數,求平均數 double s=avg(1,9,6,5,2); System.out.println(s); } public static double area(double r){ if(r<=0){ throw new FuShuException("你傳了一個負數"); //報異常並傳遞自定義的字符串 } double s=Math.PI*r*r; return s; } //求平均數的方法 public static double avg(double...arr){ double sum=0; for(double i:arr){ if(i<0){ throw new FuShuException("參數為負數"); } sum=sum+i; } return sum/arr.length; } }
自定義FuShuExecption類:
package com.oracle.Demo01; //自定義類異常,繼承自運行異常 public class FuShuException extends RuntimeException { FuShuException(String mes){ super(mes); } }
3.檢測年齡不能為負數和大於200歲
測試類:
package com.oracle.Demo01; public class Demo04 { public static void main(String[] args) throws NoAgesException { method("阿易",110); } public static void method(String name,int age) throws NoAgesException{ Person p=new Person(name,age); if(p.getAge()<0||p.getAge()>200){ throw new NoAgesException("年齡數值非法"); } System.out.println(p.getName()+"..."+p.getAge()); } }
Person類:
package com.oracle.Demo01; public class Person { private String name; private int age; Person(){ } Person(String name,int age){ this.name=name; this.age=age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
自定義NoAgeExecption類:
package com.oracle.Demo01; public class NoAgesException extends Exception { NoAgesException(){ //聲明父類的異常方法 super(); } NoAgesException(String mes){ super(mes); } }