第一题

題目內容:
从键盘输入一个整形数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("货船将正点启航");
        }
    }
}