对AboutException.java的理解。在try中如果发出某类系统识别的错误,会以throw的形式抛出,在catch中可以将其截获,不显示在前端,可以选择执行别的代码。

ArrayIndexOutOfBoundsException/内层try-catch

发生ArithmeticException

ArrayIndexOutOfBoundsException/外层try-catch

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

总结。

这些输出验证了try,catch,finally的运行顺序。与if,else差不多。是先里层再外层的那种。

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 finally不会被打印,可见catch中的退出语句生效了。但在try中退出就会报错,可见这么写是不符合规矩的。

动手动脑。

import javax.swing.JOptionPane;

public class GradeRange

{

  public static void main(String[] args)

  {

    try

    {

      String str;

      double grade;

      str = JOptionPane.showInputDialog("请输入某学生的成绩");

      //grade = Integer.parseInt(str);

      grade = Double.valueOf(str).doubleValue();

      if(grade >= 0 && grade < 60)

      {

        JOptionPane.showMessageDialog(null,"该学生不及格。");

      }

      else if(grade >= 60 && grade < 70)

      {

        JOptionPane.showMessageDialog(null,"该学生刚刚及格。");

      }

      else if(grade >= 70 && grade < 80)

      {

        JOptionPane.showMessageDialog(null,"该学生成绩中等。");

      }

      else if(grade >= 80 && grade < 90)

      {

        JOptionPane.showMessageDialog(null,"该学生成绩良好。");

      }

      else if(grade >= 90 && grade <= 100)

      {

        JOptionPane.showMessageDialog(null,"该学生成绩优秀。");

      }

      else

      {

        JOptionPane.showMessageDialog(null,"输入数字不在成绩范围内。");

      }

    }

    catch(NumberFormatException e)

    {

      JOptionPane.showMessageDialog(null,"请输入数字。");

    }

  }

}

java理论学时第七节。课后作业。的更多相关文章

  1. Java理论学时第三节。课后作业。

    如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算? 运行结果. 根据我的总结,它们三个的优先级是:构造方法 > 字段初始值 > 初始化块. 当多个类之间有继承关系 ...

  2. Java理论学时第五节。课后作业。

    随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路:先声明一个数组,再利用for循环对每一个元素赋随机生成的值,在求所有数的和,再根据要 ...

  3. Java理论学时第四节。课后作业。

    请查看String.equals()方法的实现代码,注意学习其实现方法. public class StringEquals { public static void main(String[] ar ...

  4. Java理论学时第六节。课后作业。

    package Fuction; class Grandparent { public Grandparent() { System.out.println("GrandParent Cre ...

  5. Java理论学时第二节。课后作业。

    枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象. 可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals ...

  6. Java理论学时第一节。课后作业。

    设计思路:用nextFloat()函数将从键盘输入的值分别赋给多个变量,然后直接输出相加结果. 流程图: 源代码: 实验结果:

  7. 大道至简第一章和java理论学时第一节。感受。

    这周上了本学期的第一节java课程.课件上说了一些学习java的基本思想.举了个“愚公移山”的例子.这可能就像刚接触一门新的语言,来练习输出“HelloWorld”一样,已成惯例. “愚公移山”的这个 ...

  8. java 第七周课后作业0417

    定义一个矩形类Rectangle:(知识点:对象的创建和使用)1 定义三个方法:getArea()求面积.getPer()求周长,showAll()分别在控制台输出长.宽.面积.周长.2 有2个属性: ...

  9. 关于java' web杂谈(其实是课后作业1)1 网站系统开发需要掌握的技术

    1 网站系统开发需要掌握的技术:(借鉴度娘)https://zhidao.baidu.com/question/1701850648247880220.html 需要掌握的有:Java(JavaEE) ...

随机推荐

  1. 基于Confluent.Kafka实现的Kafka客户端操作类使用详解

    一.引言 有段时间没有写东西了,当然不是没得写,还有MongoDB的系列没有写完呢,那个系列还要继续.今天正好是周末,有点时间,来写新东西吧.最近公司用了Kafka做为消息的中间件,最开始写的那个版本 ...

  2. 织梦文章里面的图片alt和title属性,用文章标题自动替换

    把{dede:field.body/}改成{dede:field.body runphp=yes}global $dsql,$id,$aid;$myid = isset($id) ? $id : $a ...

  3. Python知识

    1   注释 单行注释:#  内容 多行注释:A   """                   ''' 内容            或    内容 "&quo ...

  4. 常用的TCP Option

    当前,TCP常用的Option如下所示———— Kind (Type) Length Name Reference 描述 & 用途 0 1 EOL RFC 793 选项列表结束 1 1 NOP ...

  5. 解决Address is in use:Windows和Linux通过杀死进程

    在开发无卡支付系统的过程中,因为用了端口来监听服务,在调试程序的时候,忘了关,再次运行的时候会出现Address is in use的问题,即端口已经被绑定,无法再次使用,最直观的方法就是杀死之前的进 ...

  6. CF402D Upgrading Array

    原题链接 先用素数筛筛下素数,然后考虑贪心去操作. 先求前缀\(GCD\)(求到\(GCD\)为\(1\)就不用再往下求了),得到数组\(G[i]\),然后从后往前扫,如果\(f(G[i]) < ...

  7. UI设计师如何提升审美?

    不得不承认,作为一名设计师,独特的审美能力是设计的灵感所在,不过很多刚刚从事UI设计的人,审美能力真的非常的一般,所以心中难免有这样的疑问,我的审美能通过后天的努力提升吗?关于这点,可以非常肯定的说, ...

  8. Ubuntu中文乱码问题解决方案

    问题描述 在ubuntu上部署了jar包(java开发的图形界面),但是图形界面上的中文显示乱码. 采用以下步骤后你能够完美支持中文 第一步,安装中文支持包langauge-pack-zh-hans ...

  9. Spring 循环引用(二)源码分析

    Spring 循环引用(二)源码分析 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring 循环引用相关文章: & ...

  10. Java SE EE ME用处

    Java SE: 又称J2SE,开发部署桌面应用程序: Java EE:又称J2EE,开发网站 Java ME:是做手机APP开发 EE在SE基础上构建,提供web服务.组件模型.管理和通信API