Java异常题库
一、填空题
- __异常处理__机制是一种非常有用的辅助性程序设计方法。采用这种方法可以使得在程序设计时将程序的正常流程与错误处理分开,有利于代码的编写和维护。
- 在Java异常处理中可以使用多个catch子句,此时包含异常类的父类Exception的catch子句的位置应该是在__最后__。
- 异常处理中finally块可确保无论是否发生异常,该块中代码总能被执行。finally块不执行的唯一情况是在异常处理代码中执行__System.exit()__语句退出Java虚拟机。
- 异常是由Java应用程序抛出和处理的非严重错误,比如所需文件没有找到、零作除数,数组下标越界等,可分为两类:Checked异常和__运行时异常___。
- 在Java中对于程序可能出现的检查时异常,要么用try…catch语句捕获并处理它,要么使用_throws__语句抛出它,由上一级调用者来处理。
- Java异常处理中,如果一个方法中出现了多个Checked异常,可以在方法声明中使用关键字__thorws_声明抛出,各异常类型之间使用逗号分隔。
二、 选择题
|
1. |
以下关于异常的代码的执行结果是( C )。(选择一项) |
|
|
|
public class Test { public static void main(String args[]) { try { System.out.println("try"); return; } catch(Exception e){ System.out.println("catch"); }finally { System.out.println("finally"); } } } |
|
|
A. |
try catch finally |
|
|
B. |
catch finally |
|
|
C. |
try finally |
|
|
D. |
Try |
|
|
2. |
在异常处理中,如释放资源、关闭文件等由( C )来完成。(选择一项) |
|
|
A |
try子句 |
|
|
B. |
catch子句 |
|
|
C. |
finally子句 |
|
|
D. |
throw子句 |
|
|
3. |
编译并运行如下Java程序,将输出( D )。(选择一项) |
||
|
|
public static void main(String[] args) { try { int num1 = 2; int num2 = 0; int result = num1 / num2; System.out.println(result); throw new NumberFormatException( ); } catch (ArrayIndexOutOfBoundsException e) { System.out.print("1"); } catch (NumberFormatException e) { System.out.print("2"); } catch (Exception e) { System.out.print("3"); } finally { System.out.print("4"); } System.out.print("5"); } |
||
|
A |
134 |
||
|
B. |
2345 |
||
|
C. |
1345 |
||
|
D. |
345 |
||
|
5. |
下面选项中有关Java异常处理模型的说法错误的是( AD )。(选择二项) |
|
|
A |
一个try块只能有一条catch语句 |
|
|
B. |
一个try块中可以不使用catch语句 |
|
|
C. |
catch块不能单独使用,必须始终与try块在一起 |
|
|
D. |
finally块可以单独使用,不是必须与try块在一起 |
|
|
6. |
下面选项中属于运行时异常的是( BC )。(选择二项) |
|
|
A |
Exception和SexException |
|
|
B. |
NullPointerException和InputMismatchException |
|
|
C. |
ArithmeticException和ArrayIndexOutOfBoundsException |
|
|
D. |
ClassNotFoundException和ClassCastException |
|
|
7. |
阅读如下Java代码,在控制台输入"-1",执行结果是( B )。(选择一项) |
|
|
public class Demo { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入数字:"); try { int num = input.nextInt(); if (num < 1 || num > 4) { throw new Exception("必须在1-4之间!"); } } catch (InputMismatchException e) { System.out.println("InputMismatchException"); } catch (Exception e) { System.out.println(e.getMessage()); } } } |
||
|
A |
输出:InputMismatchException |
|
|
B. |
输出:必须在1-4之间! |
|
|
C. |
什么也没输出 |
|
|
D. |
编译错误 |
|
三、 简答题
1.Error和Exception的区别
2.Checked异常和Runtime异常的区别。
3.Java异常处理中,关键字try、catch、finally、throw、throws分别代表什么含义?
4.throws和throw的区别
四、 编码题
1.编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。
要求:使用自定义异常实现
/**
*
* 分数范围异常类型
*
* @author Administrator
*
*
*
*/
public class ScoreScopeException extends RuntimeException
{
public ScoreScopeException()
{
super();
}
public ScoreScopeException(String message)
{
super(message);
}
}
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
try
{
System.out.print("请输入分数:");
int score = scanner.nextInt();
if (score < 0 || score > 100)
{
throw new ScoreScopeException("分数必须在0-100之间");
}
System.out.println("分数为:" + score);
} catch (ScoreScopeException e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
2.写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “a,b,c不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常。
public class Test
{
public static void main(String[] args)
{
//输入三条边
System.out.println("请输入三条边长");
Scanner reader = new Scanner(System.in);
int a = reader.nextInt();
int b = reader.nextInt();
int c = reader.nextInt();
//判断是否是三角形
isTriangle(a, b, c);
}
private static void isTriangle(int a, int b, int c)
{
//三条边都不能是负数
if (a < 0 || b < 0 || c < 0)
{
throw new IllegalArgumentException("三条边不能是负数");
}
//判断是否构成三角形
if (a + b > c && a + c > b && b + c > a)
{
System.out.println("三角形的边长分别为" + "a=" + a + " "
+ "b=" + b + " " + "c=" + " " + c);
} else
{
throw new IllegalArgumentException(a + "," + b + "," + c
+ "不能构成三角形!");
}
}
}
五、 可选题
1.编写一个计算N个整数平均值的程序。程序应该提示用户输入N的值,如何必须输入所有N个数。如果用户输入的值是一个负数,则应该抛出一个异常并捕获,提示“N必须是正数或者0”。并提示用户再次输入该数
public class Test
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("要计算几个整数的平均值呢:");
int n = input.nextInt();
// 使用sum求出用户输入的数的总和;
int sum = 0;
int num = 0;
// 使用循环提醒用户输入
for (int i = 0; i < n; i++)
{
System.out.println("请输入第" + (i + 1) + "个数");
try
{
num = input.nextInt();
if (num < 0)
{
// i<0抛出异常
throw new Exception("N必须是正数或者0");
}
sum += num;
} catch (Exception e)
{
// 使用递归,如果出现异常继续输入
System.out.println(e.getMessage());
i--;
}
}
System.out.println("一共" + n + "个数," + "和为:" + sum
+ ",平均值为:" + sum / n);
}
}
Java异常题库的更多相关文章
- Java容器题库
一. 填空题 Java集合框架提供了一套性能优良.使用方便的接口和类,包括Collection和Map两大类,它们都位于 java.util 包中 队列和堆栈有些相似,不同之处在于栈是先进后 ...
- java程序设计题库
选择题 答题要求:单选题,每题只有一个正确答案,选择正确给分,不正确不给分. 1. 下面( A )数据类型可用于main()方法中传递的参数 A.String B.Integer C ...
- Java多线程题库
一. 填空题 处于运行状态的线程在某些情况下,如执行了sleep(睡眠)方法,或等待I/O设备等资源,将让出CPU并暂时停止自己的运行,进入____阻塞_____状态. 处于新建状态的线程被启动 ...
- 基于java开发的在线题库系统tamguo
简介 探果网(简称tamguo)是基于java开发的在线题库系统,包括 在线访问 后台运营 会员中心 书籍中心 管理员账号:system 密码:123456 因为线上数据和测试数据没有做到隔离,作者已 ...
- 使用Java线程并发库实现两个线程交替打印的线程题
背景:是这样的今天在地铁上浏览了以下网页,看到网上一朋友问了一个多线程的问题.晚上闲着没事就决定把它实现出来. 题目: 1.开启两个线程,一个线程打印A-Z,两一个线程打印1-52的数据. 2.实现交 ...
- 牛客网Java刷题知识点之什么是异常、异常处理的原理是什么、为什么要使用异常、异常体系、运行时异常、普通异常、自定义异常、异常链
不多说,直接上干货! 在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失.同样的道理,计算机的世界也是不完美的,异常情况随时都会发 ...
- 『Python题库 - 简答题』 Python中的基本概念 (121道)
## 『Python题库 - 简答题』 Python中的基本概念 1. Python和Java.PHP.C.C#.C++等其他语言的对比? 2. 简述解释型和编译型编程语言? 3. 代码中要修改不可变 ...
- java 基础题 很基础, 很有趣
都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底, 老手们就不用进来了,免得笑话我们这些未出校门的孩纸们, ...
- 猿题库 iOS 客户端架构设计
原文: http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=444322139&idx=1&sn=c7bef4d439f4 ...
随机推荐
- torch 入门
torch 入门1.安装环境我的环境mac book pro 集成显卡 Intel Iris不能用 cunn 模块,因为显卡不支持 CUDA2.安装步骤: 官方文档 (1).git clone htt ...
- 使用批处理(bat)脚本对目录树下同种性质的目录或文件进行处理
问题起源:每次从svn管理的目录下面复制目录之后里面总是有很多.svn的目录,虽说不影响使用但看着很碍眼.同时自己也懒得使用svn的export功能. 因此一个简单的批处理脚本可以帮助我们搞定一切,当 ...
- APPCAN MAS接口之AJAX
1.打开APPCAN IDE,文件→新建→MAS服务 2.新建MAS项目 3.新建MAS接口,访问地址http://mobile.163.com/special/chuangye/ 4.修改if_cy ...
- 转载自安卓巴士 【收藏】2015必须推荐的Android框架,猿必读系列!
一.Guava Google的基于java1.6的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries ...
- win7平台下React-Native Android:Unable to upload some APKs
一.问题描述 根据网络上的Win7平台下React-native配置教程配置好开发环境的过程中,在艰难进行到react-native run-android这一步时,发现一直出现错误,截图如下: 错误 ...
- iOS9 beta 请求出现App Transport Security has blocked a cleartext HTTP (http://)
iOS9 beta 请求出现App Transport Security has blocked a cleartext HTTP (http://) http://www.bubuko.com/in ...
- 使用SQLPlus连接Oracle实例
使用Windows徽标+R,打开运行对话框,输入cmd并回车. Microsoft Windows Microsoft Corporation.保留所有权利. C:\Users\user> 在C ...
- XSS Filter绕过
之前挖到某金融网站的xss 但是困于xss filter无奈不好下手.只能在火狐下弹窗. 以下该图是我的测试. 后来发给一个Invoker哥们儿.成功给我发来payload成功绕过了XSS Filte ...
- IntelliJ中的main函数和System.out.println()快捷键
1.在IntelJ中和Eclipse中稍有不同,在Eclipse中,输入main再按Alt+/即可自动补全main函数,但是在IntellJ中则是输入psvm,选中即可 2.在方法体内部有for循环, ...
- php源码安全加密之PHP混淆算法.
php源码安全加密的前世今生,本想发在教程区中.不知道怎么发,就写在这里面吧.PHP加密,解密是一直的话题,本人菜鸟,今天就简单向大家介绍一下并说说其中原理.提供一些加密的混淆算法.一\PHP的加密总 ...