Java- 异常处理

Java- 异常处理

  1. 异常处理能够使一个方法给它的调用者抛出一个异常。
  2. Java异常是派生自 java.lang.Throwable的类的实例。Java 提供大量预定义的异常类,例如,ErrorExceptionRuntimeExceptionClassNotFoundExceptionNullPointerExceptionArithmeticException。也可以通过扩展 Exceotion 类来定义自己的异常类。
  3. 异常发生在一个方法的执行过程中。RuntimeExceptionError 都是免检异常,其他所有的异常都是必检的。
  4. 当声明一个方法时,如果这个方法可能抛出一个必检异常,则必须声明为必检异常,告诉编译器可能会出现什么异常。
  5. 声明异常的关键字是 throws,而抛出异常的关键字 throw
  6. 如果调用声明了必检异常的方法,必须将该方法调用放在 try 语句中。在方法执行过程中出现异常时,catch 块会捕获并处理异常。
  7. 如果一个异常没有被当前方法捕获,则该异常被传给调用者。这个过程不断重复直到异常被捕获或者传递给 main 方法。
  8. 可以从一个通用的父类派生出各种不同的异常类。如果一个 catch 块捕获到父类的异常对象,它也能捕获这个父类的子类的所有异常对象。
  9. catch 块中,异常被指定顺序是非常重要的。如果在一个类的父类的异常对象之前没有指定这个类的一个异常对象,就会导致一个编译错误。
  10. 当方法中发生异常时,如果异常没有被捕获,方法将会立刻退出。如果方法想在退出前执行一些任务,可以在方法中捕获这个异常,然后再重新抛给真正的处理器。
  11. 任何情况下都会执行 finally 块中的代码,不管 try 块中是否出现或者捕获了异常。
  12. 异常处理将错误处理代码从正常的程序设计任务中分离出来,这样,就会使得程序更易于阅读和修改。
  13. 不应该使用异常处理代替简单的测试。应该尽可能地测试简单异常,将异常处理保留为处理那些无法用 if 语句处理的异常。

必检异常是指:编译器会强制程序员检查并处理它们。
免检异常:在大多数情况下,免检异常都会反映出程序设计上不可恢复的逻辑错误。例如:如果通过一个引用变量访问一个对象之前并未将一个对象赋值给它,就会抛出 NullPointerException 异常;如果访问一个数组的越界元素,就会抛出 IndexOutOfBoundsException 异常。这些都是程序中必须纠正的逻辑错误。免检异常可能在程序的任何一个地方出现。为了避免过多的使用 try-catch 块,Java 语言不允许编写代码捕获或声明免检异常。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 异常分类 Java将异常分为两种,Checked异常和Runtime异常。Java认为Checked异常都是可以在...
    LLorenzo阅读 659评论 0 1
  • 六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代...
    Executing阅读 1,264评论 0 6
  • 2.JAVA异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程...
    青城楼主阅读 521评论 0 0
  • 初识异常(Exception) 比如我们在取数组里面的某个值得时候,经常会出现定义的取值范围超过了数组的大小,那么...
    iDaniel阅读 1,843评论 1 2
  • 概念介绍 异常是发生在程序执行过程中阻碍程序正常执行的错误事件,当一个程序出现错误时,可能的情况有如下3种: 语法...
    niaoge2016阅读 5,101评论 2 20