- 浏览: 746879 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (419)
- 杂软粉墨 (2)
- 创意灵感 (3)
- 经验记录 (137)
- 开源轨迹 (2)
- sip-communicator (2)
- 闲侃杂谈 (8)
- 问题交流 (24)
- 概念模式 (32)
- 难点备案 (5)
- JwChat (1)
- 中国象棋 (1)
- 教育探索 (6)
- 英语研究 (58)
- 星际争霸 (1)
- 电信知识 (1)
- 软件架构 (3)
- 哲学探索 (26)
- 算法灵魂 (8)
- 近视探索 (6)
- 数学数学 (3)
- 牛角钻尖 (23)
- 至强文言 (3)
- 数据结构 (1)
- 宇宙物理 (2)
- 网络架构 (3)
- 游戏领域 (4)
- 图形处理 (2)
- 修炼之路 (8)
- 读书天地 (20)
- 编解乱码 (2)
- 概念探索 (8)
- 格物致知 (1)
- 其它语言 (1)
- 测试领域 (3)
- 文化风流 (1)
- JQuery (1)
- 網頁領域 (1)
- Unix/Linux (1)
- Inside JVM (1)
- 异常分析 (1)
最新评论
-
suyujie:
引用
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
iamzhoug37:
您能说一下"局部变量不受文本顺序限制" 是 ...
声明前为什么能赋值却不能输出,都是使用
异常,错误都是同一种父类:java.lang.Throwable
IllegalStateException属于RuntimeException,RuntimeException又是Exception的子类
RuntimeException的特点是非受检异常,区别于受检异常,也就是java系统允许可以不catch(当然也可以人为catch,比如特殊业务逻辑需要),在运行时碰到就抛出
关键RuntimeException为什么会被系统允许不被catch...
也就是可能会抛出RuntimeException的方法不被要求在方法throws clause中声明。
原因我想RuntimeException相对那些受检异常有更多的不确定性和普遍性,如果改为受检异常,代价较大,也没必要,因为一般它总不为业务逻辑所容(受检异常就容?也不容!是不是RuntimeException更不为所容?因此不catch直接抛出导致中断程序?也可能中不中断都不是重点,实现代价才是重点)。
对比几个可能会有更好的实感:
受检异常:ClassNotFoundException, SQLException, NoSuchMethodException...
RuntimeException:NullPointerException, IllegalArgumentException, ArithmeticException
http://bbs.csdn.net/topics/390279427?page=1#post-392900808
RuntimeExceptions are thrown for things that were preventable.
Exceptions are thrown for things that were unpreventable but recoverable
Errors are thrown for things that were unpreventable and unrecoverable.
For example, NullPointerExceptions can always be avoided and are therefore unchecked exceptions. A RemoteException could occur when there is a network failure, which cannot be reasonably prevented before the method call and therefore is checked.
发表评论
-
why null is allocated on java stack
2012-06-05 11:45 1189提问: 恩。。。俺的意思是, String str = n ... -
关于Java 泛型 ?extends T 的问题
2012-05-21 11:05 4354http://topic.csdn.net/u/2012051 ... -
HashSet的contains方法de解释是不是有问题
2011-02-20 22:27 3267first of all, exhibits the code ... -
hashcode中选择31因子的原因
2010-12-24 13:57 1478源自<<effective java 2nd> ... -
为什么AnonymousInnerClass只能访问final型非同一方法局部变量
2010-09-13 09:39 1443import java.io.IOException; im ... -
URLConnection访问servlet无反应
2010-07-26 09:28 2677这样完整的回路是ok的 客户端 import jav ... -
This is how scientists see the world
2010-07-14 15:36 1011有些东西不清楚,比如右上角什么东东,中间那个看似压强C, ... -
接口能描述成has-a吗
2010-07-10 10:19 1333接口has a什么呢? 如果说接口当作具备某种能力来用,比如X ... -
关于java.util.ResourceBundle
2010-07-05 14:17 4352import java.util.ResourceBundle ... -
ArrayList,Vector线程安全性测试
2010-06-18 09:43 3212import java.util.ArrayList; im ... -
SortedSet去重
2010-06-13 17:06 1334import java.util.Iterator; imp ... -
这个静态内部类实现的单例是迟加载且线程安全的吗?
2010-05-28 13:10 1631public class JiveProperties { ... -
double-checked locking实现的单例模式之volatile
2010-05-26 17:23 3511private volatile static Singlet ... -
死锁的例子描述对吗
2010-05-10 11:20 1102public class Deadlock { stati ... -
java中Adapter是什么概念
2010-04-06 11:30 4939Adapter乃适配器, ... -
编码转换会丢失信息吗
2010-03-09 13:13 1251编码转换会丢失信息吗? 这是个命题,根 ... -
文本文件在系统中的存储与展现方式
2010-02-04 09:38 1132碰到了一个问题,同样的一个properties ... -
servlet如何实现多线程访问同一个实例的多个service方法
2009-12-09 11:22 1623如题,这是我现在想的一个问题,暂存于此,它同一个方法的 ... -
构造方法是静态的吗?
2009-12-03 15:13 1434public class Test { private ... -
关于JTextPane读取RTF多出一行的问题
2009-11-11 11:20 2465代码如下: import java.io.FileInput ...
相关推荐
抛出异常是指在方法签名中使用 throws 关键字来声明可能抛出的异常。抛出异常的目的是为了将异常传递给调用者,让调用者来处理异常。 什么时候应该try,什么时候应该throws 当需要在方法内部处理异常时,应该使用 ...
当尝试将一个不能解析为指定数值格式的字符串转换为数值时,会抛出`NumberFormatException`。例如,尝试将包含字母的字符串转换为整数。 9. **`SecurityException` - 安全异常** 当安全策略阻止执行某些操作时,...
在这个`readFile`方法中,我们声明它可能会抛出`FileNotFoundException`,这样调用这个方法的代码就必须处理这个异常,或者也用`throws`声明抛出。 在实际应用中,自定义异常和抛出异常常常结合使用。例如,你可能...
当试图将对象强制转换为不兼容的类型时抛出。例如: ```java Object obj = new Object(); String s = (String) obj; // ClassCastException ``` 要解决这个问题,可以先进行类型检查或者使用更安全的转换方式。 #...
在任务十四“主动出击(抛出异常)”中,主要讲述了如何在Java程序中主动抛出异常以及声明和处理异常。 1. **抛出异常**: - 在Java中,如果遇到不符合预期的情况,可以使用`throw`关键字抛出一个异常对象。例如,...
ArithmeticException是指在算术运算中,出现了非法的操作,例如除数为0时抛出的异常。可以使用if判断来避免这种情况。 NullPointerException是指在程序中,试图访问null对象的成员变量或方法时抛出的异常。可以使用...
在这个例子中,`someMethod`可能会抛出`IOException`,调用`someMethod`的代码必须包含`try-catch`块或者同样声明抛出`IOException`。 ### 自定义异常 有时,标准的Java异常类不足以描述特定的错误情况,这时可以...
17. `RuntimeException`: 运行时异常,可以直接抛出,无需声明`throws`。 18. `TypeNotPresentException`: 类型不存在。 自定义异常可以帮助我们更好地控制和传达错误信息。例如,我们可以创建一个`...
`throws`关键字用于声明一个方法可能抛出的异常。如果一个方法在执行过程中可能会遇到无法处理的异常,它可以选择不处理,而是通过`throws`声明这个异常,将异常处理的责任交给调用它的方法。例如: ```java public...
最后,关于异常的继承,Java规定如果子类方法覆盖了父类的方法,那么它可以声明抛出父类方法所声明的异常的子类,但不允许声明抛出比父类方法声明的异常更严格的异常。如果父类方法没有声明抛出任何异常,则子类方法...
已检查异常必须在方法声明中显式列出,因为编译器会强制要求处理这些异常,要么通过try-catch块捕获,要么通过再次声明抛出。相比之下,未检查异常不需要显式声明,因为它们通常表示编程错误,应该在开发阶段被发现...
如果方法可能抛出受检异常,必须在方法签名中声明,或者在方法体内捕获并处理,否则会导致编译错误。 总的来说,Java中异常的处理方式有以下几种: 1. 不捕获异常:如果异常未被捕获,那么后续的代码将不会执行,...
- 使用 `throws` 关键字声明方法可能抛出的异常,是为了让调用者知道这个方法在执行时可能遇到的问题,从而做好异常处理准备。如果方法可能抛出已检查异常,但没有在方法签名中声明,那么编译器会报错。 - 子类...
- **为何抛出的异常必须是已检查异常**:`RuntimeException`和`Error`类及其子类不需要显式声明,它们会在程序运行时自动抛出。已检查异常则是由程序员显式抛出的,需要在方法签名中声明。 ##### 3.2 如何抛出异常 ...
可检测异常需要显式地在代码中进行捕获处理或声明抛出;运行时异常是不需要强制处理的异常,这类异常通常由程序逻辑错误引起;错误是指那些严重到程序本身无法处理的问题,如虚拟机错误、系统崩溃等。 5. 异常的...
throws关键字用在方法签名中,以声明该方法可能会抛出的异常类型。finally块中的代码总是会被执行,无论是否发生异常,它通常用于执行清理工作,比如关闭文件或者释放资源。 异常主要分为两种类型:Error和...
在有效使用异常的情况下,异常能清晰的回答 what, where, why 这三个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。 Java 异常架构中,Throwable 是 Java...
3. 对于运行时异常( unchecked exceptions,继承自 `RuntimeException`),可以不声明抛出,因为它们通常表示程序设计错误,通常不期望在调用者那里处理。 综上所述,Java异常处理中的`throws`关键字提供了将异常...
- 非`RuntimeException`:编译时检查异常,必须在代码中显式处理或声明抛出。 2. **Error**:通常指出了程序无法处理的问题,例如内存不足等。 #### 二、具体异常详解 ##### 1. `java.lang.NullPointerException...