09-JAVA中的异常处理
1.

程序执行结果:

也就是它根本就没抛出异常,更别提捕获异常了。那么,为什么会这样呢?
原来,

如上面程序展示,程序运行到k=i/j;的时候,就会直接终止,根本就不会运行到监视的程序,更不会运行到捕获的程序。
结论:程序出错后,会自动终止,根本不会继续往下运行的。

当把上面几行代码注释掉之后,结果就会一切正常。
结果截图:

可以看到,不光是catch里的,就连finally里的也都正常执行了。
2.

为什么把类型改成double就会没事了呢?
原因是double类型的变量在做除法运算时,是允许除数为零的。
3.

预测的结果:
ArrayIndexOutOfBoundsException/内层try-catch
发生ArithmeticException
4.

预测结果:ArrayIndexOutOfBoundsException/外层try-catch
5.

运行结果截图:

前三个是顺序执行try里的语句,当第三个try里出现异常时,调到catch语句里,执行catch里的语句,
执行完catch之后,再顺序执行下面的语句,finally被执行,
再往下,
由于没有异常了,所以,跳过catch,执行了后面的finally,
直到最后。
结论:有异常时,就会立刻跳出,寻找catch语句处理异常,
一旦异常被处理好之后,那么,其余的catch语句就不会再被执行,
但是,finally语句是无论有没有异常都会执行的语句,
当然这也不是绝对的。
6.

finally并不是所有情况都执行的,
经过我上网查资料,得知finally不执行的几种情况:
1)在finally语句块中发生了异常。
2)在前面的代码中用了System.exit()退出程序。
3)程序所在的线程死亡。
4)关闭CPU。
7.

源程序:
class IllegalFormat extends Exception{
//输入的分数格式不正确
IllegalFormat(String m){
super(m);
}
}
public class ShuZu {
public static void main(String[] args) throws IllegalFormat {
// TODO Auto-generated method stub
int control=1;
System.out.println("请输入分数:");
Scanner input= new Scanner(System.in);
String score=new String (); //分数
score=input.next(); // 输入分数
char score1[]=new char [100];
score1=score.toCharArray();
int i;
while(control==1){
try{
for( i=0;i<score.length();i++){
if(score1[i]<48||score1[i]>57){
throw new IllegalFormat("您输入的分数格式不正确,应为整数格式,请重新输入:");
}
}
control=0;
}
catch(IllegalFormat e){
System.out.println(e);
score=input.next();
score1=score.toCharArray();
}
}
int score2=Integer.parseInt(score);
System.out.println("这个同学:");
if(score2>=0&&score2<60){
System.out.println("不及格。");
}
else if(score2>=60&&score2<70){
System.out.println("及格。");
}
else if(score2>=70&&score2<80){
System.out.println("中。");
}
else if(score2>=80&&score2<90){
System.out.println("良");
}
else if(score2>=90){
System.out.println("优。");
}
程序结果截图:

09-JAVA中的异常处理的更多相关文章
- Java中实现异常处理的基础知识
Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...
- java 中的异常处理
一. 异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误.本文主要讲授的是Java语言的异常处理.Java语言的异常处理框架, 是Java语言健壮性的一个重要体现. Java把 ...
- 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架
前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...
- Java中的异常处理:何时抛出异常,何时捕获异常,何时处理异常?
Java中的异常处理:何时抛出异常,何时捕获异常? 2017-06-07 1 异常分类 Throwable对象可以分为两组: 一组是unchecked异常,异常处理机制往往不用于这组异常,包括: Er ...
- 深入了解 Java 中的异常处理 + 面试题
# 深入了解 Java 中的异常处理 + 面试题 在程序开发中,异常处理也是我们经常使用到的模块,只是平常很少去深究异常模块的一些知识点.比如,try-catch 处理要遵循的原则是什么,finall ...
- [Java] java中的异常处理
Java中的异常类都继承自Throwable类.一个Throwable类的对象都可以抛出(throw). Throwable对象可以分为两组.一组是unchecked异常,异常处理机制往往不用于这组异 ...
- 【转】Java中关于异常处理的十个最佳实践
原文地址:http://www.searchsoa.com.cn/showcontent_71960.htm 导读:异常处理是书写强健Java应用的一个重要部分,Java许你创建新的异常,并通过使用 ...
- Java 中的异常处理机制
生活中的异常: 不能够完整而顺利的完成一些工作 根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出: 异常处理: 方式: 1.选择结构(逻辑判断)避免 demo:if逻辑处理异常 im ...
- Java中的异常处理从概念到实例
1.概念 采用新的异常处理机制 在以往的程序开发过程中,经常采用返回值进行处理.例如,在编写一个方法,可以返回一个状态代码,调用者根据状态代码判定出错与否.若状态代码表示一个错误,则调用这进行相应的处 ...
- 初探Java中的异常处理
Java中的异常有以下几种: 1) Error:Java运行时的内部错误. 2) Exception:程序中应该捕获的异常. RuntimeException:因为编程产生的错误 ...
随机推荐
- lua弱表引用
1.普通垃圾回收 --lua弱表,主要是删除key或者value是table的一种元方法 --元表里的__mode字段包含k或者v:k表示key为弱引用:v表示value为弱引用 local test ...
- flex+java+blazeds 多通道好文
http://www.cnblogs.com/noam/archive/2010/08/05/1793504.html blazeds, spring3整合实现RPC服务和消息服务 环境: MyEcl ...
- [转载]我的WCF之旅(1):创建一个简单的WCF程序
为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用.本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构.对那些对WCF不是很了解的读者来说,这个例 ...
- SQL Server 的数据表简单操作
--创建数据表--[use 要创建数据表的数据库名称go]create table 要创建的表名(字段名 数据类型[长度] [null | not null] [primary key],... .. ...
- {HDU}{2516}{取石子游戏}{斐波那契博弈}
题意:给定一堆石子,每个人最多取前一个人取石子数的2被,最少取一个,最后取石子的为赢家,求赢家. 思路:斐波那契博弈,这个题的证明过程太精彩了! 一个重要的定理:任何正整数都可以表示为若干个不连续的斐 ...
- BulkSqlCopy 批量导入数据(Ef支持)
Ado.net对批量数据的支持相信大家都已经非常熟悉.再此就不在多说,就当是给自己备个份,没办法,这个方法太好用了. public static void BulkCreate( string tab ...
- php电话号码正则表达式常用例子
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) 02 03 ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{ ...
- 在 node.js 的 express web 框架中自动注册路由
该方法主要是动态注册自己写的 router . 注册器 router 文件名为 loader.js . var express = require('express'); var fs = requ ...
- 手动部署servlet
1.编写servlet,在tomcat\webapps目录下新建文件Test,Test目录如下 Test | classes web.xml | test01 | Servletfirst.jav ...
- JavaScript DOM编程艺术读书笔记(一)
第一章,第二章 DOM:是一套对文档的内容进行抽象和概念化的方法. W3C中的定义:一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态的访问和修改文档的内容,结构和样式. DHTML( ...