从你的全世界路过-make a mistake

异常

1.Java异常概念

java异常是Java提供的用语处理程序错误的一种机制

所谓错误就是指在程序运行的过程中发生的一些异常事件(如 除0溢出,数组下标越界,索要读取的文件不存在)。

2.Java异常的分类

Exception                                                      异常层次结构的根类

ArithmeticException                                      算数错误情形,如以零作除数

ArrayIndexOutOfBoundsException                数组下标越界

NullPointerException                                     空指针异常(访问对象为null)

ClassNotFoundException                               不能加载所需的类

InputMissMatchException                              类型不匹配异常(输入与输出不符)

3.异常的捕获和处理

使用 try -catch语句

4.注意事项

运行期出现的错误

观察错误的名字和行号最重要

    /**
     * @param args
     */
    public static void main(String[] args) {
      int i=text();
        System.out.println(i);

    }
   public static int text(){
       int x=1;
       try{
           x++;
           return x;  //已经返回的数是2了 纵然程序继续执行变成3
       }finally{
           ++x;
       }
   }

java异常处理面试题归纳

1、error和exception有什么区别

error表示系统级的错误,是java运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是Java虚拟机抛出的。

exception 表示程序需要捕捉、需要处理的异常,是由与程序设计的不完善而出现的问题,程序必须处理的问题

2、运行时异常和一般异常有何不同

Java提供了两类主要的异常:runtimeException和checkedException

一般异常(checkedException)主要是指IO异常、SQL异常等。对于这种异常,JVM要求我们必须对其进行cathc处理,所以,面对这种异常,不管我们是否愿

意,都是要写一大堆的catch块去处理可能出现的异常。

运行时异常(runtimeException)我们一般不处理,当出现这类异常的时候程序会由虚拟机接管。比如,我们从来没有去处理过NullPointerException,而且

这个异常还是最常见的异常之一。

出现运行时异常的时候,程序会将异常一直向上抛,一直抛到遇到处理代码,如果没有catch块进行处理,到了最上层,如果是多线程就有Thread.run()抛出,如

果不是多线程那么就由main.run()抛出。抛出之后,如果是线程,那么该线程也就终止了,如果是主程序,那么该程序也就终止了。

其实运行时异常的也是继承自Exception,也可以用catch块对其处理,只是我们一般不处理罢了,也就是说,如果不对运行时异常进行catch处理,那么结果不

是线程退出就是主程序终止。

如果不想终止,那么我们就必须捕获所有可能出现的运行时异常。如果程序中出现了异常数据,但是它不影响下面的程序执行,那么我们就该在catch块里面将异

常数据舍弃,然后记录日志。如果,它影响到了下面的程序运行,那么还是程序退出比较好些。

3、Java中异常处理机制的原理

Java通过面向对象的方式对异常进行处理,Java把异常按照不同的类型进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它都是Throwable

或其子类的实例。当一个方法出现异常后就会抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并对异常进行处理。Java的

异常处理是通过5个关键词来实现的:try catch  throw throws finally。

一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws),我们可以通过它的类型来捕捉它,或最后由缺省处理器来处理它(finally)。

try:用来指定一块预防所有异常的程序

catch:紧跟在try后面,用来捕获异常

throw:用来明确的抛出一个异常

throws:用来标明一个成员函数可能抛出的各种异常

finally:确保一段代码无论发生什么异常都会被执行的一段代码。

4、你平时在项目中是怎样对异常进行处理的。

(1)尽量避免出现runtimeException 。例如对于可能出现空指针的代码,带使用对象之前一定要判断一下该对象是否为空,必要的时候对runtimeException

也进行try catch处理。

(2)进行try catch处理的时候要在catch代码块中对异常信息进行记录,通过调用异常类的相关方法获取到异常的相关信息,返回到web端,不仅要给用户良好

的用户体验,也要能帮助程序员良好的定位异常出现的位置及原因。例如,以前做的一个项目,程序遇到异常页面会显示一个图片告诉用户哪些操作导致程序出现

了什么异常,同时图片上有一个按钮用来点击展示异常的详细信息给程序员看的。

5、final、finally、finalize的区别

(1)、final用于声明变量、方法和类的,分别表示变量值不可变,方法不可覆盖,类不可以继承

(2)、finally是异常处理中的一个关键字,表示finally{}里面的代码一定要执行

(3)、finalize是Object类的一个方法,在垃圾回收的时候会调用被回收对象的此方法。

时间: 2024-10-05 05:11:43

从你的全世界路过-make a mistake的相关文章

《从你的全世界路过》票房爆表 光线怎么反而要裁员?

一个爆款的成功,让一个影视公司出现一年不开张.开张吃一年的状况,其实是很不健康的状态 文/张书乐 近日,光线传媒披露三季报,前三季公司实现营业收入11.87亿元,同比增长41.79%:实现净利润5.80亿元,同比增长216.55%. 然而,光线传媒在业绩大涨之时,却陷入"裁员风波",并宣称破局VR市场.此前有消息称,光线传媒将在全公司范围裁员20%左右,校招生.实习生都包括在内.光线传媒总裁王长田近日在接受媒体采访时也坦承了光线对于先看网在VR战略上的重要转向. 同时,光线最新的公告,

《从你的全世界路过》的句子语录

1.我希望有个如你一般的人. 如这山间清晨一般明亮清爽的人, 如奔赴古城道路上阳光一般的人, 温暖而不炙热,覆盖我所有肌肤. 由起点到夜晚,由山野到书房, 一切问题的答案都很简单. 我希望有个如你一般的人,贯彻未来,数遍生命的公路牌.--张嘉佳<从你的全世界路过>   2.我们在同一个时区,却有一辈子的时差.--张嘉佳<从你的全世界路过>3.我觉得这个世界美好无比.晴时满树花开,雨天一湖涟漪,阳光席卷城市,微风穿越指间,入夜每个电台播放的情歌,沿途每条山路铺开的影子,全部是你不经意

从你的全世界路过

也许真的就像朝圣,当到达心目中生地之后,所能做的只有原路返回. 在合适的时间.合适的地点却没有正确的行动,时间的流逝已经消退了原本可以有的激情. 当你见过了那华丽和流光溢彩,有怎能瞧得上这陷入泥土的尘埃. ...... 不再驻足,不再观望. 在此时,在此地,在此生,总要有些追求. 从你的全世界路过,那一抹青绿已留在心底,足以,我将继续前行,一路狂奔!

[读书笔记]从你的全世界路过

小玉点点头,低声说:我不是备胎.我想了想,我是个摆渡人.他在岸这边落水了,我要把他送到河那岸去.河那岸有别人在等他,不是我,我是摆渡人. 小玉看窗外的夜色,说:"我说的拼命,不是拼命工作,不是拼命吃饭,不是拼命解释的拼命,那只是个形容词.我说的拼命,是真的今天就算死了,我也愿意." 你看,我喜欢马力,可哪怕他离婚了,我也没法跟他在一起.我喜欢他,愿意为他做很多事情,如果我们真的在一起,我一定会要求他也这样对我.但是不可能啊,他又不喜欢我.所以,我只想做个摆渡人,这样我很开心."

从你的全世界路过-论演员的自我修养

线程 1.概念  : 线程是一个程序内部的顺序控制流 2.线程与进程的区别 (1)每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销 (2) 线程可以看做轻量级的进程,同一线程共享代码和数据空间.每个线程有独立的运行栈和程序计数器PC,线程切换的开销小 (3) 多进程 在操作系统中同时运行多个任务(程序) (4) 多线程:在同一应用和程序中有多个顺序流同时进行 3 注意点 (1)java 的线程是通过java.lang.Threadl类来实现的 (2)VM启动时会有一个由

从你的全世界路过- 告白气球

我希望有个人如你一般的人,如山间清爽的风,如古城温暖的光,从清晨   ,   到傍晚,  从山野   ,  到书房 ,一切都没有关系  只要最后是你就好 接口 1.定义:接口(interface)是抽象方法和常量值定义的集合 从本质上讲,接口是一种特殊的抽象类,这种抽象类中包含常量和方法的定义 而没有变量和方法的实现 2举例说明 public interface Runner{ public Static final int id =1; //public static final 可以不写 默

从你的全世界路过-孤独的放逐

集合 一.集合类概述 java.util包中提供了一些集合类,这些集合类又被称为容器.数组也是一种容器,但集合类与数组的不同之处在于数组的长度是固定的,而集合的长度是可变的:数组用来存放基本类型的数据,集合用来存放对象的引用.常用的集合有List集合.Set集合和Map集合,其中List与Set继承了Collections接口.各接口还提供了不同的实现类. 这些类的继承关系如下: Java.lang.Object |--Collection |--List:元素是有序的,元素可以重复,因为该集合

从你的全世界路过-Freedom

---恢复内容开始--- 自由不是想干什么就干什么,而是不想干什么,就有能力不干什么. 继承 一 继承 1.定义: Java之中使用extends关键字来实现类的继承机制 2.语法规则 :<modifier> class <name>[extends<superclass>] 3.优点: 通过继承,子类自动拥有了基类<superclass> 的所有成员(成员变量和方法) 4.注意点:java只支持单继承,不允许多继承    privite 修饰符 下的变量和

从你的全世界路过-从此又诞生了一个小码菜鸟

               关于while循环和do-while循环 一,循环       1,定义:以环形.回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处 举例说明:比如 打印50份试卷,在400m跑道上进行1W m赛跑等 解析:循环条件---不足50分试卷就继续打印 循环操作---打印试卷,打印总份增加1. 循环结束---打印足了50份试卷 结论:由此看出循环不是无休止进行的,满足一定条件的时候循环才会继续,成为"循环条件",循环条件不满足的时候,循环退出:期间进行的反