一、实验目的:
1.掌握异常处理的基本思想
2.掌握异常处理处理过程
二、实验内容
1(题目编号8691)、从键盘输入一个整形数n,如果输入正确的话,输出10-n后的值,如果输入错误的话输出“not int”最后输出end
import java.util.Scanner;
public class shiyan6_1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
int n = scanner.nextInt();
System.out.println(10 - n);
} catch (Exception e) {
System.out.println("not int");
} finally {
System.out.println("end");
}
}
}
2(题目编号8700)、模拟向货船上装载集装箱,每个集装箱有一定重量,该重量(整数)大于100小于1000,货船总重为1000,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。
我自己写的:
import java.util.Scanner;
public class shiyan6_222 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
load();
}
private static void load() {
Scanner sc = new Scanner(System.in);
int b = 0;
int a;
while(true) {
a = sc.nextInt();
if (a == 0) {
System.out.println("正点启航");
break;
}else if(a <100 ||a>1000){
System.out.print("请输入正确重量:");
}else{
try {
b = a + b;
if (b < 1000) {
System.out.println("当前载重"+b);
} else {
throw new dangerException();
}
} catch (dangerException e) {
System.out.println("货船超载,当前载重"+b);
}
}
}
}
}
class dangerException extends Exception {
dangerException() {
}
}
抄同学的:
import java.util.Scanner;
public class shiyan6_22 {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
weight weight = new weight();
int n;
while (true) {
n = scanner.nextInt();
if (n == 0) {
break;
}
weight.load(n);
System.out.println("目前装载货物"+weight.num+"吨");
}
} catch (DangerException e) {
e.sho();
} finally {
System.out.println("货船正点启航");
}
}
}
class DangerException extends Exception{
void sho() {
System.out.println("货船超载");
}
}
class weight{
int num=0;
void load(int n) throws DangerException{
num+=n;
int max = 1000;
if(max>num) {
throw new DangerException();
}
}
}
3(题目编号8701)、写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:“a,b,c不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。 (注:两边之和大于第三边:a+b>c;两边之差小于第三边:a>c-a)
import java.util.Scanner;
public class shiyan6_333 {
public static void main(String[] args) {
int a, b, c;
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
triangle(a, b, c);
}
private static void triangle(int a, int b, int c) {
try {
if (a + b > c && a > b - c && a+c>b && b+c>a &&b>a-c&&c>a-b) {
System.out.println(a + " " + b + " " + c);
} else {
throw new IllegalArgumentException();
}
} catch (IllegalArgumentException e) {
System.out.println("a,b,c不能构成三角形");
}
}
}
三、实验结果与分析:
1、对各个题目的实验结果进行验证,对不正确的实验结果分析原因并在实验报告中记录分析结果。