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