Java异常处理错误

研究发现,在编译阶段的最佳时机错误,序之前。然而,编译期间并不能找出全部的错误,余下的问题必须在执行阶段解决。这就须要错误源通过某种方式把适当的信息传给某个接收者,该接收者知道怎样处理这个问题。

Java中的异常处理的目的在于通过使用少于眼下数量的代码来简化大型,可靠的程序的生成。而且通过这样的方式能够使你更加自信:你的应用中没有未处理的错误。

异常这个词有我对此感到意外的意思。

问题出现了,你或许不清楚该怎样处理,但你的确知道不该置之不理。你要停下来,看看是不是有别人是不是在别的地方。可以处理这个问题。仅仅是在当前的环境中还没有足够的信息来解决问题,所以把问题提交到更高级别的环境中。在这里将作出正确地决定。

使用异常所带来的还有一个相当明显的优点是:它往往可以减少错误处理代码的复杂度。假设不使用异常,那么就必须检查特定的错误。并在程序的很多地方去处理它。

而假设使用异常,就不必在方法调用处进行检查,由于异常机制将能保证捕获这个错误。并且,仅仅需在一个地方处理错误。即所谓的异常处理程序中。

这样的方式不仅节省代码,并且把“描写叙述在正常运行过程中做什么事”的代码和“出了问题怎么办”的代码相分离。

异常处理的过程:

当抛出异常之后,有几件事情会随之发生。首先,同Java中其它对象的创建一样。将使用new在堆上创建异常对象。然后,当前的执行路径被终止,而且从当前环境中弹出对异常对象的引用。

此时。异常处理机制接管程序,并開始寻找一个恰当的地方来继续执行程序。这个恰当的地方就是异常处理程序,它的任务是将程序从错误状态中恢复,以使程序能要么换一种方式执行,要么继续执行下去。

import java.util.*;

public class WhoCalled{
static void f(){
try{
throw new Exception();
}catch(Exception e){
for(StackTraceElement s:e.getStackTrace())
System.out.println(s.getMethodName());
}
}
static void g(){
f();
}
static void h(){
g();
}
public static void main(String[] args){
f();
System.out.println("--------------------------------------");
g();
System.out.println("--------------------------------------");
h();
}
}

finally子句:

不管异常是否抛出,finally子句总能被运行。

import java.util.*;

class ThreeException extends Exception{}

public class FinallyWorks{
static int count=0;
public static void main(String[] args){
while(true){
try{
if(count++==0)
throw new ThreeException();
System.out.println("No exception");
}catch(ThreeException e){
System.out.println("ThreeException");
}finally{
System.out.println("In finally clause");
if(count==2)
break;
}
}
}
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Java异常处理错误的更多相关文章

  1. Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序

    文章的标题看似自相矛盾,然而我在"正确"二字上打了引号.我们来看一个例子,关于Java异常处理(Exception Handling)的一些知识点. 看下面这段程序.方法pleas ...

  2. 札记:Java异常处理

    异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...

  3. Java 异常处理

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用System.out ...

  4. 《转载》Java异常处理的10个最佳实践

    本文转载自 ImportNew - 挖坑的张师傅 异常处理在编写健壮的 Java 应用中扮演着非常重要的角色.异常处理并不是功能性需求,它需要优雅地处理任何错误情况,比如资源不可用.非法的输入.nul ...

  5. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

  6. Java异常处理和设计

    在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...

  7. 深入理解java异常处理机制

       异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的 ...

  8. Java提高篇——Java 异常处理

    异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...

  9. java异常处理的设计

    有一句这样话:一个衡量Java设计师水平和开发团队纪律性的好方法就是读读他们应用程序里的异常处理代码. 本文主要讨论开发Java程序时,如何设计异常处理的代码,如何时抛异常,捕获到了怎么处理,而不是讲 ...

随机推荐

  1. jquery 无刷新上传的小function

    function zll_up(click_id,up_url,text_id,show_id){ this.create = function(){} //当点击指定元素时,创建iframe for ...

  2. angular表单知识点

    原文 https://www.jianshu.com/p/c772d143e1fc 大纲 1.对表单的理解 2.模板驱动表单(Template Driven Forms) 3.响应式表单(Reacti ...

  3. 在Scope利用Content sharing Widget来分享内容

    在最新的Scope Widget中,有一个新的Content Sharing Widget.我们能够利用这个Widget来分享我们的图片到信息.Facebook,Twitter等渠道.比方,在我们的S ...

  4. SAP 中的popup dialog (弹出对话框) 常见实现方法

      方法1: FM:POPUP_TO_CONFIRM(标准对话弹出消息) 有三个button:YES-NO-CANL,可进行对应的逻辑推断 可设定标题,描写叙述问题,不方便对文本进行换行等排版,不能改 ...

  5. hdu 1558 Segment set (并查集)

    Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  6. MySQL 基础查询

    6月业绩榜 名次   伙伴 业绩 签单 面谈 每日目标 1 杜艳花 12367 2 0 查看目标 2 郑东杰 2345 1 0 查看目标 3 黄传龙 345 1 1 查看目标 4 測试 0 0 0 查 ...

  7. Android中实现iPhone开关

    前一段时间在做项目的时候遇到了一个问题,美工在设计的时候设计的是一个iPhone中的开关,但是都知道Android中的Switch开关和IOS中的不同,这样就需要通过动画来实现一个iPhone开关了. ...

  8. NOIP模拟 Work - 二分 + 树状数组 / ???

    题目分析 如果没有最后的注意事项,此题就是二分裸题.有了注意事项,会有两种思路: 在线:二分天数t,并在主席树上求1~t天中大于d(浪费的时间)的时间之和以及数量,答案即为:sum - d * cnt ...

  9. 选课 - 树型DP(孩子兄弟建树法)

    题目描述 学校实行学分制.每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分.学校开设了 N(N<300)门的选修课程,每个学生可选课程的数量 M 是给定的.学生选修了这M门课并考核通 ...

  10. Spring Boot 定制与优化内置的Tomcat容器

    1.Spring Boot定制与优化内置Tomcat容器. > 内置的容器有三个分别是Undertow.Jetty.Tomcat,Spring Boot 对这三个容器分别进行了实现,它们上层接口 ...