<p align="center">异常作业
<p class="1">一、??? 填空题
- ______异常处理______机制是一种非常有用的辅助性程序设计方法。采用这种方法可以使得在程序设计时将程序的正常流程与错误处理分开,有利于代码的编写和维护。
- 在Java异常处理中可以使用多个catch子句,此时包含异常类的父类Exception的catch子句的位置应该是在__最后__________。
- 异常处理中finally块可确保无论是否发生异常,该块中代码总能被执行。finally块不执行的唯一情况是在异常处理代码中执行__System.exit()__________语句退出Java虚拟机。
- 异常是由Java应用程序抛出和处理的非严重错误,比如所需文件没有找到、零作除数,数组下标越界等,可分为两类:Checked异常和____运行时异常______________。
- 在Java中对于程序可能出现的检查时异常,要么用try…catch语句捕获并处理它,要么使用____throws_______语句抛出它,由上一级调用者来处理。
- Java异常处理中,如果一个方法中出现了多个Checked异常,可以在方法声明中使用关键字___throws___________声明抛出,各异常类型之间使用逗号分隔。
二、??? 选择题
1.
以下关于异常的代码的执行结果是(? C? )。(选择一项)
?
public class Test {
public static void main(String args[]) {
try {
out.println("try");????????????????????
return;
catch(Exception e){
out.println("catch");
finally {
out.println("finally");
A.
B.
C.
D.
2.
在异常处理中,如释放资源、关闭文件等由(? C?? )来完成。(选择一项)
A
try子句
B.
C.
finally子句
D.
throw子句
3.
编译并运行如下Java程序,将输出( D?? )。(选择一项)
?
public static void main(String[] args) {
try {
int num1 = 2;???????? int num2 = 0;
int result = num1 / num2;
out.println(result);
throw new NumberFormatException( );
catch (ArrayIndexOutOfBoundsException e) {
out.print("1");
catch (NumberFormatException e) {
out.print("2");
catch (Exception e) {
out.print("3");
finally {
out.print("4");
out.print("5");
A
B.
C.
1345
D.
345
|
4.
阅读如下Java代码,其中错误的行是( AC?? )。(选择二项)
?
public class Student {
private String stuId
public void setStuId(String stuId) throw Exception { // 1
if (stuId.length() != 4) { // 2
throws new Exception("学号必须为4位!"); // 3
else {
this.stuId = stuId;???? //4
A
1
B.
C.
3
D.
全部正确
5.
下面选项中有关Java异常处理模型的说法错误的是( AD? )。(选择二项)
A
一个try块只能有一条catch语句
B.
C.
catch块不能单独使用,必须始终与try块在一起
D.
finally块可以单独使用,不是必须与try块在一起
6.
下面选项中属于运行时异常的是(? BC? )。(选择二项)
A
Exception和SexException
B.
C.
ArithmeticException和ArrayIndexOutOfBoundsException
D.
ClassNotFoundException和ClassCastException
7.
阅读如下Java代码,在控制台输入"-1",执行结果是(B)。(选择一项)
public class Demo {
public static void main(String[] args) {
new Scanner(System.in);
out.print("请输入数字:");
try {
int num = input.nextInt();
if (num < 1 || num > 4) {
throw new Exception("必须在1-4之间!");
catch (InputMismatchException e) {
out.println("InputMismatchException");
catch (Exception e) {
out.println(e.getMessage());
A
B.
C.
D.
三、??? 简答题
- Error和Exception的区别
Exception:1.可以是可被控制(checked)或者不可控制(unchecked);
2.表示一个由程序员导致的错误;
3.应该在应用程序级被处理;
? ? Error:1.总是不可控制的(unchecked);
2.经常用来表示系统错误或者底层资源错误;
? ??3.如果可能的话,应该在系统级被捕捉;
- Checked异常和Runtime异常的区别。
- Java异常处理中,关键字try、catch、finally、throw、throws分别代表什么含义?
try?用来指定一块预防所有“异常”的程序;
catch?子句紧跟在?try?块后面,用来指定你想要捕捉的“异常”的类型;
throw?语句用来明确地抛出一个“异常”(方法体);
throws?用来标明一个成员 方法可能抛出的各种“异常”(方法声明);
Finally?为确保一段代码不管发生什么“异常”都被执行一段代码;
- throws和throw的区别
1:位置
? ? ??? throws出现在方法头
? ???? 而throw出现在方法体。
? ? ?2:抛出区别
? ???? throws表示出现异常的一种可能性,并不一定会发生这些异常;声明的是一个异常类型
? ???? throw则是抛出了异常,执行throw则一定抛出了某种异常对象。?
? ? ?3? 处理异常方式
? ???? 两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,
? ??? ? 但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。?
一、??? 编码题
- 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。
要求:使用自定义异常实现
ScoreScopeException
Scanner scanner = System.out.print("请输入分数:" score = (score < 0 || score > 100 ScoreScopeException("分数必须在0-100之间" System.out.println("分数为:" + } }
2.写一个方法void?isTriangle(int?a,int?b,int?c),判断三个参数是否能构成一个三角形,?如果不能则抛出异常IllegalArgumentException,显示异常信息 “a,b,c不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,?调用此方法,并捕获异常。
isTriangle( a, b, c) (a<0||b<0||c<0 IllegalAccessException("三角形边长不能为负数" (a+b>c&&a+c>b&&b+c> System.out.println("三角形三边分别是:"+"a="+a+" b="+b+" c="+ } IllegalAccessException(a+","+b+","+c+","+"不能构成三角形" main(String[] args) Scanner sc= System.out.println("请分别输入三角形三条边:" a= b= c= }
五、??? 可选题
- 编写一个计算N个整数平均值的程序。程序应该提示用户输入N的值,如何必须输入所有N个数。如果用户输入的值是一个负数,则应该抛出一个异常并捕获,提示“N必须是正数或者0”。并提示用户再次输入该数
Scanner sc = System.out.println("您要输入几个数呢:" n = sum = 0 ( i = 0; i < n; i++ System.out.println("请输入" + (i + 1) + "个数:"
num1 = (num1 < 0 Exception("输入的数必须是正数或者是0" sum += }
System.out.println("一共输入"+n+"个数"+",和为"+sum+",平均值为"+sum/ }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!