尚学堂第六章作业:异常机制

  1. 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。
    要求:使用自定义异常实现。

package com.shangxuetangBJ;

public class Number {
public void ad(int i) throws Test4Exception{
if(i>=0&&i<=100){
System.out.println(“分数是”+i);
}else {
throw new Test4Exception(“分数必须是0到100内”);
}
}
}
//自定义异常
public Test4Exception() {
super();
}

public Test4Exception(String message) {
	super(message);
}	

}
public class Test4 {
public static void main(String[] args) {
try {
System.out.println(“请输入分数”);
Scanner sc = new Scanner(System.in);
int i = Integer.parseInt(sc.next());
Number n = new Number();
n.ad(i);
} catch (Exception e) {
e.printStackTrace();//打印出异常位置
}
}
}
2. 写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “a,b,c不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常。
//自定义异常
public class IIIegaIArgumentException extends Exception{

public IIIegaIArgumentException() {
	super();
	// TODO Auto-generated constructor stub
}

public IIIegaIArgumentException(String message) {
	super(message);
	// TODO Auto-generated constructor stub
}

}
package com.shangxuetangBJ;
//调用自定义异常
public class Triangle {
public void isTriangle(int a,int b, int c ) throws IIIegaIArgumentException{
if(a+b<=c ||a+c<=b||b+c<=a ){
throw new IIIegaIArgumentException(“a,b,c不能构成三角形”);

	}else {
		System.out.println("三角形的三边长分别是:"+"a"+a+"b"+b+"c"+c);
	}
}

}
package com.shangxuetangBJ;

import java.util.Scanner;
//捕获异常
public class TestTriangle {
public static void main(String[] args) {
try {
System.out.println(“请输入三边长”);
Scanner sc = new Scanner(System.in);
int a = Integer.parseInt(sc.next());
int b = Integer.parseInt(sc.next());
int c = Integer.parseInt(sc.next());
Triangle t = new Triangle();
t.isTriangle(a, b, c);
} catch (Exception e) {
// e.getMessage();
e.printStackTrace();
}
}
}
3. 编写一个计算N个学生分数平均分的程序。程序应该提示用户输入N的值,如何必须输入所有N个学生分数。如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”。并提示用户再次输入该分数。
package com.shangxuetangBJ;

import java.util.Scanner;

public class PingJun {
int sum = 0;
int nn =0;
public void ping(int n) throws Exception {
while (n > 0) {
System.out.println(“请输入每个学生成绩”);
Scanner sc = new Scanner(System.in);
int i = Integer.parseInt(sc.next());
if (i < 0) {

			throw new Exception("分数必须为正数");

		} else {
			this.sum += i;
			n--;
		}

	}
	System.out.println("平均成绩是" + sum /nn );
}

}
package com.shangxuetangBJ;

import java.util.Scanner;

public class TestPingJun {
public static void main(String[] args) {
PingJun p = new PingJun();
try {
System.out.println(“请输入学生人数”);
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.next());
p.nn = n;
p.ping(n);

	} catch (Exception e) {
		e.printStackTrace();
	}
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值