Java异常(1)
三、声明检查时异常
public FileInputStream(String name) throws FileNotFoundException
这样编译器就会从其首部就可以知道这个方法将会抛出什么异常。
什么时候应该抛出异常?下面四种情况:
(1)调用一个抛出 已检查的异常 的方法,如FileInputStream构造器(可控可处理)
(2)程序运行时发现的错误,并且利用throw抛出一个已检查的异常(可控可处理)
(3)程序出现错误,例如a[-1]=0会抛出一个ArrayIndexOutOfBoundsException 这样的未检查异常(应该避免)
(4)Java虚拟机和运行时库出现内部错误(未检查异常,属于Error异常)(预料不到)
如果出现前两种情况时,必须告诉调用这个方法的程序员有可能抛出异常。
【编者感悟】为什么要这样设计?如果检查时异常对(3)情况负责,那么将会出现一堆不对程序负责的代码,而靠异常检测对程序的运行风险承担责任,这显然不是Java异常设计的初衷。不对(4)情况声明是因为这种错误出现的概率低,第二出现后你也降低不了它带来的损失,只能停止程序执行。
声明多个已检查的异常可以如下,记得逗号隔开:
class MyAnimation
{
public Image loadingImage(String s) throws FileNotFoundException, EOFException
}
四、抛出异常
String readData(Scanner in) throws EOFException
{
...
while(...)
{
if(!in.hasNext())
{
if(n < len)
throw new EOFException();
}
}
}
五、捕获异常
public void read(String file)
{
try{
InputStream in = new FileInputStream(file);
int b;
while((b = in.read()) != -1)
[
//PROCESS INPUT
}
}catch(IOException exception){
exception.printStackTrace();
}
}
编辑整理:Claruarius,转载请注明出处。
Java异常(1)的更多相关文章
- 浅谈java异常[Exception]
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...
- 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
本文转载自 java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...
- Java异常体系及分类
上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...
- Java异常之自定义异常
哎呀,妈呀,又出异常了!俗话说:"代码虐我千百遍,我待代码如初恋". 小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常.Java异 ...
- 第11章 Java异常与异常处理
1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...
- java 异常
1.java异常 2.自定义抛出 3.运行时异常,程序有问题,让使用者可以改' ' 4.return 和 throw的区别 return 符合函数要求的值 throw 有问题的时候用它结束 ...
- 3.Java异常进阶
3.JAVA异常进阶 1.Run函数中抛出的异常 1.run函数不会抛出异常 2.run函数的异常会交给UncaughtExceptionhandler处理 3.默认的UncaughtExceptio ...
- 2.Java异常学习
1.Java异常的概念 异常的例子 1.除法就是一个需要捕获异常的例子,除数又可能是0 异常处理的基本流程如下 一旦发生异常,就使得程序不按照原来的流程继续的运行下去 a.程序抛出异常 try{ th ...
- java异常架构图 和几个面试题
1.java异常架构图 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被 ...
- 黑马----JAVA异常
黑马程序员:Java培训.Android培训.iOS培训..Net培训 黑马程序员--JAVA异常 一.JAVA异常有三种语句块:try语句块.catch语句块.finally语句块. 1.try语句 ...
随机推荐
- tomcat+JNDI+spring 的配置问题
在做spring有关的项目时,往往需要配置数据源,当然配置的方式有很多种,可以单独写在一个properties文件中,这样修改数据源配置的话比较容易,也比较简单,下面介绍另外一种数据源的配置 利用jn ...
- 关于iOS中SQLITE句柄的使用的细节
1.设计思想:给SQLITE进行封装,利用定义的类别实现方法的简洁,以便达到低耦合效果 控制器代码: #import "ViewController.h" #import &quo ...
- jsp应用bootstrap表格应用实例
一.初始化表格 <div style="margin-top: 80px;margin-left:45px;margin-right:30px;overflow-x: scroll&q ...
- cocos2d 场景转换的方法执行顺序
转自:http://shanbei.info/the-cocos2d-scene-conversion-method-execution-order.html 如果你希望在场景转换的过程中使用过渡效果 ...
- 项目androidAnt编译打包Android项目
时间紧张,先记一笔,后续优化与完善. Ant编译打包Android项目 在Eclipse中对Android项目停止编译和打包如果项目比较大的话会比较慢,所以改为Ant工具来停止编译和打包 Ant环境配 ...
- Asp.Net Mvc5 之Controller
经过前面介绍了路由系统之后,我们知道任何一个请求在经过asp.net url路由系统的拦截之后,会生成以controller/action 名称为核心的路由数据.asp.net mvc 根据此解析出目 ...
- Android 如何更换屏幕上锁界面背景图片
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- 将图片序列保存为GIF文件
http://stackoverflow.com/questions/11459568/issue-with-rebuilding-and-saving-gifs-using-tgifimage 将图 ...
- iOS开发——开发技巧&Git常用命令
Git常用命令 初始化git init 加—bare实现远程仓库 配置git config user.name iCocos 配置全局git config —global user.na ...
- 信号之alarm和pause函数
使用alarm函数可以设置一个计时器,在将来某个指定的时间,该计时器会超时.当计时器超时时,产生SIGALRM信号.如果不忽略或不捕捉此信号,则其默认动作是终止调用该alarm函数的进程. #incl ...