对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. Ubuntu 16.04 更换阿里源

    vim /etc/apt/source.list deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by s ...

  2. centos7+nginx+rtmp+ffmpeg搭建流媒体服务器

    1.安装前需要的工具 #net-tool 查本地IP #wget 下载安装包 #unzip 解压zip包 #gcc gcc-c++ perl 编译软件包用 yum install -y net-too ...

  3. 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "configuration"

    该问题是因为xml的头部写错了,一个是configuration,一个是mapper,不能直接复制. 参考链接:http://blog.csdn.net/testcs_dn/article/detai ...

  4. .net委托

    今天要学的是委托 委托的基本形式 直接上代码 public delegate int AddDelegate(int x,int y); class Program { static void Mai ...

  5. UI设计教程:如何在设计中运用颜色

    灰度优先 我们习惯在设计阶段的早期就开始调整颜色和色调.但是,当你意识到自己花了3个小时来调整主色调的时候,你发现这种行为毫无帮助.虽然把玩颜色很有吸引力,但是你应该避免在设计初期进行这种行为. 相反 ...

  6. virtualbox 采用 NAT 还是 BRIDGE

    正如标题所言,其实这两个都可以让虚拟机上网,但是还是有些差别的. 选择NAT的话, 虚拟机之间无法PING通 虚拟机可以PING通主机 主机无法PING通虚拟机 这是因为虚拟机不能在网络里拥有自己的I ...

  7. 高负载PHP调优

    高负载PHP调优 针对PHP的Linux调优 调整文件描述符限制 # ulimit -n 1000000 # vi /etc/security/limits.conf # Setting Shell  ...

  8. 将hibernate框架融入到spring框架中

    第一步:首先创建表: create table  user( id int(2) primary key,name varchar(20),password varchar(20)); 第二步:建立d ...

  9. 【Git】 GitLab服务器社区版安装与配置

    GitLab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务 GitLab系统架构 当~git在图片中引用时,它表示git用户的主目录 ...

  10. mybatis学习 十三 resultMap标签 一对一

    1 .<resultMap>标签 写在mapper.xml中,由程序员控制SQL查询结果与实体类的映射关系. 在写<select>标签中,有一个resultType属性,此时s ...