java07课堂作业
一、动手动脑:多层的异常捕获-1
阅读以下代码(CatchWho.java),写出程序运行结果:
public class CatchWho {
public static void main(String[] args) {
try {
try {
throw new ArrayIndexOutOfBoundsException();
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println( "ArrayIndexOutOfBoundsException" + "/内层try-catch");
}
throw new ArithmeticException();
}
catch(ArithmeticException e) {
System.out.println("发生ArithmeticException");
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println( "ArrayIndexOutOfBoundsException" + "/外层try-catch");
}
}
}
运行结果:
ArrayIndexOutOfBoundsException/内层try-catch
发生ArithmeticException
二、动手动脑:多层的异常捕获-2
阅读以下代码(CatchWho2.java),写出程序运行结果:
public class CatchWho2 {
public static void main(String[] args) {
try {
try {
throw new ArrayIndexOutOfBoundsException();
}
catch(ArithmeticException e) {
System.out.println( "ArrayIndexOutOfBoundsException" + "/内层try-catch");
}
throw new ArithmeticException();
}
catch(ArithmeticException e) {
System.out.println("发生ArithmeticException");
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println( "ArrayIndexOutOfBoundsException" + "/外层try-catch");
}
}
}
运行结果:
ArrayIndexOutOfBoundsException/外层try-catch
三、请先阅读 EmbededFinally.java示例,再运行它,观察其输出并进行总结。
public class EmbededFinally {
public static void main(String args[]) {
int result;
try {
System.out.println("in Level 1");
try {
System.out.println("in Level 2");
// result=100/0; //Level 2
try {
System.out.println("in Level 3");
result=100/0; //Level 3
}
catch (Exception e) {
System.out.println("Level 3:" + e.getClass().toString());
}
finally {
System.out.println("In Level 3 finally");
}
// result=100/0; //Level 2
}
catch (Exception e) {
System.out.println("Level 2:" + e.getClass().toString());
}
finally {
System.out.println("In Level 2 finally");
}
// result = 100 / 0; //level 1
}
catch (Exception e) {
System.out.println("Level 1:" + e.getClass().toString());
}
finally {
System.out.println("In Level 1 finally");
}
}
}
运行结果:
in Level 1
in Level 2
in Level 3
Level 3:class java.lang.ArithmeticException
In Level 3 finally
In Level 2 finally
In Level 1 finally
分析:当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块执行顺序
四、finally语句块一定会执行吗
public class SystemExitAndFinally {
public static void main(String[] args)
{
try{
System.out.println("in main");
throw new Exception("Exception is thrown in main");
//System.exit(0);
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.exit(0);
}
finally
{
System.out.println("in finally");
}
}
}
运行结果:
in main
Exception is thrown in main
分析:在JVM正常运行的情况下,finally块一定会执行。但如果JVM都退出了finally块就无法执行了
五、Java多层嵌套异常处理的基本流程
http://lavasoft.blog.51cto.com/62575/18920/
http://blog.sina.com.cn/s/blog_9d88a5770101gsf4.html
六、成绩判断
源代码:
package 成绩判断;
import javax.swing.JOptionPane;
//<=60 “不及格”、60--69“及格”、70--79 “中”、80--89“良”、90-100“优”
class NumberlimitedExceptiion extends Exception{
NumberlimitedExceptiion(){
JOptionPane.showMessageDialog(null, "所输入的数字超出范围!",
"输出",JOptionPane.INFORMATION_MESSAGE);
}
}
class Shuru{
int score;
public static void prime(int m) throws NumberlimitedExceptiion{
if(m>100||m<0){
NumberlimitedExceptiion limitexcep=new NumberlimitedExceptiion();
throw limitexcep;
}
}
public void input(){
try{
String i=JOptionPane.showInputDialog("请输入一个整数成绩:");
score=Integer.parseInt(i);
}
catch(NumberFormatException e){
JOptionPane.showMessageDialog(null, "输入的不是整数!",
"输出",JOptionPane.INFORMATION_MESSAGE);
input();
}
try{
prime(score);
}
catch(NumberlimitedExceptiion e) {
input();
}
// finally{
//
// }
}
}
public class Juage {
public static void main(String[] args){
Shuru a=new Shuru();
a.input();
if(a.score<60){
JOptionPane.showMessageDialog(null, "此成绩为不及格!",
"输出",JOptionPane.INFORMATION_MESSAGE);
}
else if(a.score<=69){
JOptionPane.showMessageDialog(null, "此成绩为及格!",
"输出",JOptionPane.INFORMATION_MESSAGE);
}
else if(a.score<=79){
JOptionPane.showMessageDialog(null, "此成绩为中等!",
"输出",JOptionPane.INFORMATION_MESSAGE);
}
else if(a.score<=89){
JOptionPane.showMessageDialog(null, "此成绩为良等!",
"输出",JOptionPane.INFORMATION_MESSAGE);
}
else if(a.score<=100){
JOptionPane.showMessageDialog(null, "此成绩为优等!",
"输出",JOptionPane.INFORMATION_MESSAGE);
}
}
}
java07课堂作业的更多相关文章
- 栋哥你好,让我们回顾最初认识C++的时候(课堂作业)
计算器的第一步,至今还记记忆犹新,本次的课堂作业,便是那个框架.闲话少叙,代码如下传送门: Main.cpp #include "stdafx.h" #include<ios ...
- 20155213 第十二周课堂作业MySort
20155213 第十二周课堂作业MySort 作业要求 模拟实现Linux下Sort -t : -k 2的功能 参考 Sort的实现 提交码云链接和代码运行截图 初始代码 1 import java ...
- 课堂作业-Bag类的实现
课堂作业-Bag类的实现 要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进 ...
- Java课程课堂作业代码
前言 本文章只是单纯记录课堂老师布置的课堂作业代码,题目都比较简单,所以没有写解题思路,相信大家都能理解,当然其中有的解法和代码不是最优的,当时只是为了完成题目,后来也懒得改了,如果有不恰当或者不正确 ...
- Java课堂作业详解
今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...
- 百度前端学院js课堂作业合集+分析(更新中...)
第一课:简陋的登录框 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- OSLab课堂作业1
日期:2019/3/16 作业:实现命令cat, cp, echo. myecho命令 #include <stdio.h> int main(int argc, char *ar ...
- 面向对象程序设计_课堂作业_01_Circle
The 1st classwork of the C++ program 题目: Create a program that asks for the radius of a circle and p ...
- C++ 课堂作业1.0
c++第一次课堂作业点这里 题目要求:输入半径,计算圆的面积,在调用外部函数,无需使用类.
随机推荐
- IE6支持max-height及min-height解决方法
我们在写CSS的时候,常常会遇到让一个图片或一个布局不能超出设定一定高度范围值,有时也需要设置一个最小高度值,以达到对齐等样式.接下来为大家总结的如何解决IE6不支持max-height和不支持min ...
- 移动端压缩并ajax上传图片解决方案
1.需求 做一个前端可压缩并且上传图片到后台的功能 2.使用组件 用到的主要是jq和LocalResizeIMG这2个库 3.使用方法 a.引入脚本文件 <script type='text/j ...
- bug-android之ActivityNotFoundException
应用场景:用于安卓的短信发送功能 异常名称:Caused by: android.content.ActivityNotFoundException: No Activity found to han ...
- hdu1536&&hdu3023 SG函数模板及其运用
S-Nim Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status ...
- EXT Grid celleditor列编辑,动态控制某一单元格只读
listeners : { beforeedit:function(editor, context, eOpts) { if(context.record.data.hasRatio == " ...
- phpstorm+Xdebug断点调试PHP
运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...
- php 使用redis锁限制并发访问类
1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功. 例如换领优惠券,如果用户同一时间并发提交换领码,在没有加锁限制 ...
- 1.SpringMVC的简介和环境搭建
SpringMVC的简介: SpringMVC 和 Struts一样是一个MVC框架,和Spring无缝连接,和struts2类似, Spring MVC属于SpringFrameWork的后续产品, ...
- MAC系统下配置环境变量
环境变量初始值 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 使用export 可以设置暂时的环境变量 如果要追加PATH的话添加新的变量到文件中expor ...
- 20145213祁玮のJava课程总结
20145213のJava学习总结 每周学习笔记 1.第一周读书笔记 2.第二周读书笔记 3.第三周读书笔记 4.第四周读书笔记 5.第五周读书笔记 6.第六周读书笔记 7.第七周读书笔记 8.第八周 ...