Java 异常类 练习题

第一题

題目內容:
从键盘输入一个整形数n,如果输入正确的话,输出10-n后的值,如果输入错误的话输出“not int”
最后输出end

输入输出说明:
输入:
asd
输出:
not int
end

如果输入的不是整数,则抛出异常类:InputMismatchException。

import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
    public static void main(String[] args){
    	Scanner cin=new Scanner(System.in);
    	try {
    		int n=cin.nextInt();
    		System.out.println(10-n);
    	}
    	catch(InputMismatchException e) {
    		System.out.println("not int");
    	}
    	finally {
    		System.out.println("end");
    	}
	}
}

第二题

題目內容:
写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:“a,b,c不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。

输入输出说明:
2 4 3
三角形的三边长为:2,4,3
1 2 3
1,2,3不能构成三角形
1 2.0 3
请输入整数作为三角形的边长!

输入不匹配异常抛出InputMismatchException,非法数据异常抛出IllegalArgumentException。

import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;
class TestTriangle {   
    static void triangle(int a, int b,int c) throws IllegalArgumentException,InputMismatchException{
	//starts
    	if(a<0||b<0||c<0||a+b<=c||a+c<=b||b+c<=a) throw new IllegalArgumentException();
    	System.out.printf("三角形的三边长为:%d,%d,%d\n",a,b,c);
	//end
	}
}
public class Main {
	public static void main(String[] args) {
		int a=0, b=0, c=0;
		Scanner in = new Scanner(System.in);
		try{
	    	//starts
			a = in.nextInt();
		    b = in.nextInt();
		    c = in.nextInt();
		    TestTriangle.triangle(a,b,c);
			//end
	    }
		catch(InputMismatchException e) {
			System.err.println("请输入整数作为三角形的边长!");
		}
		catch(IllegalArgumentException e) {
			System.err.println("a,b,c不能构成三角形");
		}			
	}	
}

第三题

題目內容:
模拟向货船上装载集装箱,每个集装箱有一定重量,该重量(整数)大于100小于1000,货船总重为1000,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。

输入:
199
400
300
300
输出:
目前装载了199吨货物
目前装载了599吨货物
目前装载了899吨货物
超重
无法再装载重量是300吨的集装箱
货船将正点启航

自定义异常类DangerException,其中含有showError方法,在船类中有loading方法来抛出异常DangerException。

import java.util.Scanner;
class DangerException extends Exception {
    //starts
    public void showError() {
		System.out.println("超重");
	}
	//end
} 
class CargoBoat {
    int realContent;  //装载的重量
    int maxContent;   //最大装载量
    public void setMaxContent(int c) {
    	maxContent = c;
    }
    public void loading(int m) throws DangerException {
  	//starts
    	realContent+=m;
    	if(realContent>maxContent)throw new DangerException();
    	System.out.printf("目前装载了%d吨货物\n",realContent);
	//end
    }
}
public class Main {
	public static void main(String args[]) {
		CargoBoat ship = new CargoBoat();
		Scanner s=new Scanner(System.in);
		ship.setMaxContent(1000);
		int m=0;
		try{
			//starts
			while(true) {
				m=s.nextInt();
				ship.loading(m);
			}
			//end
		}
		catch(DangerException e) {
			//starts
			e.showError();
			System.out.printf("无法再装载重量是%d吨的集装箱\n",m);
			//end
		}
		finally {
			System.out.printf("货船将正点启航");
		}
	}
}

你可能感兴趣的:(从零开始学Java)