异常分析

 

一、请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。

(1)源代码;import javax.swing.*;

 

class AboutException {

   public static void main(String[] a) 

   {

      int i=1, j=0, k;

      k=i/j;

 

 

try

{

 

k = i/j;    // Causes division-by-zero exception

//throw new Exception("Hello.Exception!");

}

 

catch ( ArithmeticException e)

{

System.out.println("0.  "+ e.getMessage());

}

 

catch (Exception e)

{

if (e instanceof ArithmeticException)

System.out.println("0");

else

{  

System.out.println(e.getMessage());

 

}

}

 

 

finally

     {

      JOptionPane.showConfirmDialog(null,"OK");

     }

 

  }

}

 

(2)j截图:

二、阅读以下代码(CatchWho.java),写出程序运行结果:

1)源代码: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"); 

        } 

    } 

}

(2)结果:

1)源代码: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"); 

        } 

    } 

}

(2)结果:   

三、当有多个嵌套的trycatchfinally时,要特别注意finally的执行时机。

当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块执行顺序。

finally语句块一定执行

四、编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。

要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃。

源代码:package dijia;

import java.util.Scanner;

 

public class Test {

 

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

 

double chengji;String b;

 

try{

 b = s.next();

throw new ArithmeticException(); 

 

}

catch(ArithmeticException e){

System.out.println("不及格、及格、中、良、优");

}

 

}

 

}

(1)

(2)截图;                     

 

                               

转载于:https://www.cnblogs.com/anheidijia-123/p/6103213.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux c之wait和waitpid函数的用法和总结

1、wait和waitpid函数的介绍 1) wait()函数用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或者该进程接收到了一个指定的信号为止。如果该父进程没有子进程或者它的子进程已经结束,则wait()函数就会立即返回。 2) waitpid()的作用和wait()一样,但它并不一…

微软开发者的年度回顾

2021 年 .NET 和 Microsoft 开发人员的技术都发生了什么?很难从 2021 年只选择一个主题。安静的进化?开源的争议?一个让开发人员疑惑的操作系统更新?当我回头看时, 发现一年发生了很多事情, 2021 年的发展是稳步向前的&#xff0c…

我是永远不可能出轨的,除非......

1 当爸妈学会了抠图(素材来源豆瓣,侵删)▼2 帮我带瓶我平时常喝的水(素材来源网络,侵删)▼3 我们是被资本凑在一起的联姻(素材来源网络,侵删)▼4 我是不会出轨的&…

个人控件/对象命名规范(慢慢更新)

自己收集自网络,转载本文请保留来源(否则以后我这边更新了,不写转载来源的坑爹了) 控件/对象类型前缀AppBar只有一个:appBar/多个:suffix:XXXAppBarAppBarButtonbtnBorderbrdButtonbtnCanvascnvCheckBoxchk…

页面滚动固定

实例代码: 1 $(document).scroll(function () {2 3 var $leftBox $(.lFixedBlock),4 $rightBox $(.rFixedBlock),5 leftBoxHeight $leftBox.height(),6 rightBoxHeight $rightBox.height(),7 …

python listbox排序_python – 从tkinter.Listbox中提取项目列表

我编写了以下tkinter脚本来了解如何将数据列表添加到tkinter.Listbox小部件中.我发现了两种方法.接下来,我想从tkinter.Listbox小部件中提取相同的列表.在4种不同的方法中,我只设法让第4种方法(即e4)起作用.如何使e1,e2和e3方法起作用?最终目标是获取最初提供给tkin…

学号20145209《信息安全系统设计基础》第11周学习总结

学号20145209《信息安全系统设计基础》第11周学习总结 教材学习内容总结 教材学习内容总结 第八章 异常控制流 1、从给处理器加电开始,直到断点为止,程序计数器假设一个值的序列 a0,a1,……,an-1 每个ak是某个相应的指…

别让猴子跳回背上摘抄

1. 源源不断的猴子 管理者的贡献来自于他们的判断力与影响力,而非他们个人投入的时间长短与埋头苦干的程度。 他们掌控时间的方式,和那些非管理者对于时间管理的考虑大不相同——后者的贡献主要来自于时间与努力。 对于非管理者而言,时间管…

linux之学习linux系统相关的书籍

1.《鸟哥的Linux私房菜-基础学习篇》 2.《Linux Shell 脚本攻略》 3.《Unix环境高级编程》 4.《Linux系统编程》

16岁上大学,25岁博士毕业,她还是南大医学院最年轻的博导!

全世界只有3.14 % 的人关注了爆炸吧知识本文转自:募格学术魏嘉,16岁考上南大,25岁博士毕业,是南大医学院最年轻的博导,已在J Natl Cancer Inst等国际著名杂志上发表64篇SCI论文。在第24届“中国青年五四奖章”入围名单…

十年整理CAD精髓

为什么80%的码农都做不了架构师?>>> AUTOCAD使用心得之一 使用的三个基本方面:清晰、准确、高效 目前,公司的设计文件,特别是图纸,都是用AUTOCAD软件绘制的。但是,现在还有很多人对CAD并不是…

Oracle免客户端InstantClient安装使用

正常情况下,用PL/SQL等软件连接Oracle,需要安装Oracle客户端软件,一般安装oracle客户端差不多需要2G左右的硬盘空间,但如果我们仅仅是连接数据库进行查询和执行一些相应的语句而不进行相应开发,那么oracle客户端就显得…

使用这个库,让你的服务操作 Redis 速度飞起

点击上方蓝字关注 👆👆没领红包封面的可以在文末领取大多数人使用 Redis 作为远程缓存存储,因为它速度快。Redis6 通过消除不必要的网络往返,可以使其更快。服务器辅助的客户端缓存这个方法很简单。Redis6 会记录客户端请求的键值…

mysql bigint转string_无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”!...

作者:dbapower链接:https://blog.51cto.com/suifu/2135599背景Part1:写在最前当一张单表10亿数据量的表放在你面前,你将面临着什么?Part2:背景介绍为了提升数据库资源利用率,一个实例中,在不互相影响&#…

linux之sed命令详解

sed命令详解: sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到…

mysql导入sql脚本命令

2019独角兽企业重金招聘Python工程师标准>>> 使用mysql自带的命令行工具导入sql脚本如下&#xff1a; mysql -h localhost -u root -proot -v -Ddbname < dbname.sql 转载于:https://my.oschina.net/u/2450094/blog/795488

媒体层图形技术之AssetsLibrary 学习笔记

choudang的专栏转载自 http://m.blog.csdn.net/blog/choudang/28274519 1.ALAsset ALAsset类代表相册中的每个资源文件&#xff0c;可以通过它获取资源文件的相关信息还能修改和新建资源文件 Asset Properties – valueForProperty: (1.ALAssetPropertyType 资源的类型&…

jenkins构建触发器定时任务

接上篇Jenkins发布.Net项目到IIS前面说到了把项目部署到iis,那么这边有个问题就是这个部署的触发条件是手工还是需要自动的呢。我觉得这个的看具体的场景&#xff0c;假设团队人员比较多&#xff0c;不断的在提交代码到指定分支&#xff0c;如果是自动化的话&#xff0c; 那么基…

JavaScript基于对象编程

2019独角兽企业重金招聘Python工程师标准>>> JavaScript基于对象编程 1、JavaScript变量/函数声明在代码执行之前被解析&#xff0c;并且变量声明优先级高于函数声明。 代码片段&#xff1a; 1234567var flag test in window;if (!flag){ var te…