高淇java300集异常机制作业
1.以下关于异常的代码的执行结果是(C )。(选择一项)
|
1
2
3
4
5
6
7
8
9
10
11
12
|
public class Test { public static void main(String args[]) { try { System.out.print("try"); return; } catch(Exception e){ System.out.print("catch"); }finally { System.out.print("finally"); } }} |
A.try catch finally
B.catch finally
C.try finally
D.try
异常机制处理的顺序通常是 try-catch-finally
2.在异常处理中,如释放资源、关闭文件等由(C )来完成。(选择一项)
Atry子句
B.catch子句
C.finally子句
D.throw子句
3.阅读如下Java代码,其中错误的行是(A C )。(选择二项)
|
1
2
3
4
5
6
7
8
9
10
|
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.2
C.3
D.全部正确
1处为throws
3处为throw
4.下面选项中属于运行时异常的是(C D )。(选择二项)
A.Exception和SexException
B.NullPointerException和InputMismatchException
C.ArithmeticException和ArrayIndexOutOfBoundsException
D.ClassNotFoundException和ClassCastException
ArithmeticException 试图除以0
ArrayIndexOutOfBoundsException数组索引越界异常的方式
NullPointerException 空指针异常
ClassNotFoundException 无法找到指定的类异常
ClassCastException 数据类型转换时,有可能发生类型转换异常
InputMismatchException 属于CheckException异常
5.阅读如下Java代码,在控制台输入"-1",执行结果是(B)。(选择一项)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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.编译错误
输入不为int 为字符char 字符串string 或者Boolean型时抛出A 属于CheckException异常
二、简答题
1. Error和Exception的区别。
Error是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题
Exception是异常,需要进行捕获(try{} catch(){} finally{])或者抛出处理(throws)
2. Checked异常和Runtime异常的区别。
Checked异常已检查异常,这类异常在编译时就必须做出处理,否则无法通过编译
Runtime异常是运行时异常 ,这类异常通常是由编程错误导致的,所以在编写程序时,并不要求必须使用异常处理机制来处理这类异常,经常需要通过增加“逻辑处理来避免这些异常”。
3. Java异常处理中,关键字try、catch、finally、throw、throws分别代表什么含义?
try:try语句指定了一段代码,该段代码就是异常捕获并处理的范围,一个try语句必须带有至少一个catch语句块或一个finally语句块 。
catch:每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。如果异常类之间有继承关系,在顺序安排上需注意。越是顶层的类,越放在下面,再不然就直接把多余的catch省略掉。 也就是先捕获子类异常再捕获父类异常
finally:不管是否发生了异常,都必须要执行的,常在finally中关闭程序块已打开的资源
注意事项
1. 即使try和catch块中存在return语句,finally语句也会执行。是在执行完finally语句后再通过return退出。
2. finally语句块只有一种情况是不会执行的,那就是在执行finally之前遇到了System.exit(0)结束程序运行。
throws: 在方法声明中抛出一个或多个异常对象
throw:抛出异常对象,只能跟一个
4. throws和throw的区别。
throws E1,E2,E3只是告诉程序这个方法可能会抛出这些异常,方法的调用者可能要处理这些异常,而这些异常E1,E2,E3可能是该函数体产生的。
throw则是明确了这个地方要抛出这个异常。
三、编码题
1. 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。
要求:使用自定义异常实现。
package Exception;
import java.util.Scanner; class MyException extends Exception{
//默认构造器
public MyException() {
}
//带有详细信息的构造器,信息存储在message中
public MyException(String message) {
super(message);
}
} class ScoreExpetion {
private int inscore;
public void setInscore(int inscore) throws MyException {
if(inscore<){
throw new MyException("输入分数不能小于0");
}
if(inscore>){
throw new MyException("输入分数不能大于0");
}
this.inscore=inscore;
}
} public class ScoreException {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入分数");
int score=input.nextInt();
ScoreExpetion se=new ScoreExpetion();
try {
se.setInscore(score);
System.out.println("分数为"+score);
} catch (MyException e) {
e.printStackTrace();
}
}
}
2. 写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “a,b,c不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常。
package Exception;
import java.util.Scanner;
public class Square {
//判断三个参数是否能构成一个三角形,如果不能则抛出异常
public void isTriangle(int a ,int b, int c){
if((a+b)<c){
throw new IllegalArgumentException("a,b,c不能构成三角形");
}
if((a+c)<b){
throw new IllegalArgumentException("a,b,c不能构成三角形");
}
if((b+c)<a){
throw new IllegalArgumentException("a,b,c不能构成三角形");
}
if(a<=||b<=||c<=){
throw new IllegalArgumentException("a,b,c不能构成三角形");
}
System.out.println("三角形的各边长为"+a+","+b+","+c);
}
public static void main(String[] args){
System.out.println("请输入三角形的三个边长");
Scanner input=new Scanner(System.in);
Square square=new Square();
int a=input.nextInt();
int b=input.nextInt();
int c=input.nextInt();
square.isTriangle(a,b,c);
}
}
3. 编写一个计算N个学生分数平均分的程序。程序应该提示用户输入N的值,如何必须输入所有N个学生分数。如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”。并提示用户再次输入该分数。
package Exception;
import java.util.Scanner;
public class Average {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入学生的个数");
int studentNumber=input.nextInt();
ScoreExpetion se=new ScoreExpetion();
int[] studentScore=new int[studentNumber];
for(int i=;i<studentScore.length;i++){
System.out.println("请输入"+(i+)+"号学生的分数");
studentScore[i]=input.nextInt();
try {
se.setInscore(studentScore[i]);
} catch (MyException e) {
e.printStackTrace();
i--;
continue;
}
}
int sum=;
for(int a:studentScore){
sum+=a;
}
System.out.println("平均分为"+(sum/studentNumber));
}
}
package Exception;
import java.util.Scanner;
class MyException extends Exception{
//默认构造器
public MyException() {
}
//带有详细信息的构造器,信息存储在message中
public MyException(String message) {
super(message);
}
}
class ScoreExpetion {
private int inscore;
public void setInscore(int inscore) throws MyException {
if(inscore<){
throw new MyException("输入分数不能小于0");
}
if(inscore>){
throw new MyException("输入分数不能大于0");
}
this.inscore=inscore;
}
}
public class ScoreException {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入分数");
int score=input.nextInt();
ScoreExpetion se=new ScoreExpetion();
try {
se.setInscore(score);
System.out.println("分数为"+score);
} catch (MyException e) {
e.printStackTrace();
}
}
}
高淇java300集异常机制作业的更多相关文章
- 高淇java300集JAVA面向对象的进阶作业
一.选择题 1.使用权限修饰符(B)修饰的类的成员变量和成员方法,可以被当前包中所有类访问,也可以被它的子类(同一个包以及不同包中的子类)访问.(选择一项) Apublic B.protected C ...
- 尚学堂 213_尚学堂_高淇_java300集最全视频教程_反射机制_提高反射效率_操作泛型_操作注解_合并文件.mp4
在反射的时候如果去掉了安全性检测机制,能够大大的提高反射的执行效率,我们来看下面的代码进行比较 package com.bjsxt.test; import java.lang.reflect.Met ...
- Java - 自定义异常(尚学堂第六章异常机制作业计算平均数)
编写一个计算N个学生分数平均分的程序.程序应该提示用户输入N的值,如何必须输入所有N个学生分数.如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”.并提示用户再次输入 ...
- Java - 自定义异常(尚学堂第六章异常机制作业判断三角形)
写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “ ...
- 白嫖党的福音!!!全新的Java300集视频(2022版)来了!
它来了它来了,经过一年时间的沉淀, [尚学堂]高淇Java300集完整版正式发布啦! 应广大网友和尚学堂忠实的孜孜学子以及听众朋友的要求,尚学堂在去年十月份就把预计在2022年发布的Java300集提 ...
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
在上一篇文章<搭建高可用mongodb集群(二)—— 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ...
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
在上一篇文章<搭建高可用mongodb集群(二)-- 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ...
- 构建高可靠hadoop集群之3- Quorum Journal Manager
在正式环境中,搭建高可靠(ha)的系统是必须的. 例如oralce的rac,apache集群,windows服务器集群 本文不再赘言ha的重要性. 本文主要是对 http://hadoop.apach ...
- Redis之高可用、集群、云平台搭建
原文:Redis之高可用.集群.云平台搭建 文章大纲 一.基础知识学习二.Redis常见的几种架构及优缺点总结三.Redis之Redis Sentinel(哨兵)实战四.Redis之Redis Clu ...
随机推荐
- Linux的一些问题
2. VMware11安装deepin15 实现文件共享和屏幕分辨率放大 要点:安装 open-vm-tools open-vm-tools-desktop open-vm-tools-dkms 这 ...
- Python中Json对象处理的jsonpath-rw
这两天在写一个爬虫,需要从网站返回的json数据提取一些有用的数据. 向url发起请求,返回的是response,在python3中,response.content是二进制bytes类型的,需要用d ...
- 关于HTML、CSS、JavaScript三者关系的简述
总述 我对于网页这部分的理解吧,对于静态网页来说,无非分为三部分:第一部分.HTML,第二部分.CSS,第三部分.JavaScript(这部分暂且放一边).这俩个给我的第一印象就是,这你妹的都是一串串 ...
- 小程序从后台输出的代码为HTML实体字符如何解决?
最近在做一个小程序的考试系统,从后台调出的数据是这个样子的 那么我遇到这个问题的时候想到的微信小程序的富文本即(wxParse),使用过wxParse的都知道,富文本必须得具体到单个的数据上才能使用, ...
- SQLServer 导入大脚本文件
1.cmd 你懂的 2.这里呢得引入一下OSQL,先看看帮助文档:osql -? 3.osql -E -i C:\Users\DNT\Desktop\BigValues.sql-E 表示使用 Wind ...
- jquery mobile 表单提交 图片/文件 上传
jquerymobile 下面 form 表单提交 和普通html没区别,最主要是 <form 要加一个 data-ajax='false' 否则 上传会失败 1 html代码 <!do ...
- HTTP 前端需明白的相关知识点
简介: http(Hyper Text Transfer Protocol)超文本传输协议是万维网应用层的协议,使用了面向连接的TCP作为运输层协议. 特征: 简单快速:通过url就可以访问资源,协议 ...
- 在Python中用Request库模拟登录(一):字幕库(无加密,无验证码)
字幕库的登录表单如下所示,其中省去了无关紧要的内容: <form class="login-form" action="/User/login.html" ...
- 基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件
原文:http://www.cnblogs.com/hoojo/archive/2013/03/29/openfire_plugin_chatlogs_plugin_.html 随笔-150 评论- ...
- javascript快速入门之BOM模型—浏览器对象模型(Browser Object Model)
什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...