java程序设计基础_陈国君版第五版_第九章例题

来源:互联网 发布:软件对比ppt 编辑:程序博客网 时间:2024/05/12 18:46
java程序设计基础_陈国君版第五版_第九章例题
/** * 本测例会产生一个数组越界异常 * @author Richard * */public class Main9_1 {public static void main(String[] args){int i;int[] a ={1,2,3,4};for(i=0;i<5;i++)System.out.println("a["+i+"]="+a[i]);System.out.println("5/0 "+(5/0));}}

public class Main9_2 {public static void main(String[] args){int i ;int[] a = {1,2,3,4};for(i=0;i<5;i++){try{System.out.print("a["+i+"]/"+i+"="+(a[i]/i));}catch(ArrayIndexOutOfBoundsException e){System.out.print("捕获到了数组下标越界异常");}catch(ArithmeticException e){System.out.print("异常类名称是:"+e);}catch(Exception e){System.out.println("捕获"+e.getMessage()+"异常!");}finally{System.out.println("\tfinally\ti="+i);}}System.out.println("继续");}}

public class Main9_3 {public static void main(String[] args){int a = 5,b = 0;try{if(b==0)throw new ArithmeticException();elseSystem.out.println(a+"/"+b+"="+a/b);}catch(ArithmeticException e){System.out.println("异常:"+e+"被抛出了!");e.printStackTrace();}}}

public class Main9_4 {public static double multi(int n){if(n<0)throw new IllegalArgumentException();double s = 1;for(int i = 1;i<=n;i++)  s = s*i;return s;}public static void main(String[] args){try{int m = Integer.parseInt(args[0]);System.out.println(m+"!="+multi(m));}catch(ArrayIndexOutOfBoundsException e){System.out.println("命令行中没提供参数!");}catch(NumberFormatException e){System.out.println("应输入一个【整数】!");}catch(IllegalArgumentException e){System.out.println("出现的异常:"+e.toString());}finally{System.out.println("程序运行结束!!");}}}

public class Main9_5 {static void check(String str1)throws NullPointerException{if(str1.length()>2){str1 = null;System.out.println(str1.length());}char ch;for(int i = 0; i < str1.length();i++){ch = str1.charAt(i);if(!Character.isDigit(ch))throw new NumberFormatException();}}public static void main(String[] args)throws Exception{int num;try{check(args[0]);num = Integer.parseInt(args[0]);if(num > 60)System.out.println("成绩为:"+num+"\t及格");elseSystem.out.println("成绩为:"+num+"\t不及格");}catch(NullPointerException e){System.out.println("空指针异常:"+e.toString());}catch(NumberFormatException ex){System.out.println("输入的参数不是数值类型");}catch(Exception e){System.out.println("命令行中没有提供参数");}}}

import java.io.*;public class Main9_6 {public static void main(String[] args)throws IOException{String str;BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));while(true){try{System.out.println("请输入字符串:");str = buf.readLine();if(str.length()>0)break;elsethrow new IOException();}catch(IOException e){System.out.println("必须输入字符串");}}String s = str.toUpperCase();System.out.println("转换后的字符串为:"+s);}}

class CircleException extends Exception{double radius;CircleException(double r){radius = r;}public String toString(){return "半径 r = "+ radius + "不是一个正数";}}class Circle{private double radius;public void setRadius(double r)throws CircleException{if(r<0)throw new CircleException(r);elseradius = r;}public void show(){System.out.println("圆面积 = "+3.14*radius*radius);}}public class Main9_7 {public static void main(String[] args){Circle cir = new Circle();try{cir.setRadius(-2.0);}catch(CircleException e){System.out.println("自定义异常:"+e.toString());}cir.show();}}

0 0