关闭

Java高级部分--异常重点总结

标签: Java高级部分--异常重点总结
914人阅读 评论(0) 收藏 举报
分类:

2015年11月20日18:42:32

Java高级部分异常重点总结

作者:数据分析玩家生气生气

1.简述学习异常的必要性

1>在Java当中,大多数工具【类】里面的方法都会抛出一个异常,我们必须对这些异常进行捕获处理,否则编程的时候会出错

2>编程的时候有些问题必须用异常进行处理,if……else无法进行解决

2.简述对异常概念的理解

1>异常是程序运行过程中发生的事件,该事件可以中断程序指令的正常执行流程,使程序被强行终止

2>异常本质上就是一个类对象,由java虚拟机自动封装生成的一个类对象,因此它也是以类的方式生成的,如:

Exception e = new Exception(),该对象包含了很多信息,包括出错的信息

3>异常是一种处理机制,它提供了一种能够对错误处理的机制,异常不是编译时的错误,编译时的错误叫error,异常指的是运行时表现出来的一些错误

3.简述异常处理机制

在java当中,若一个程序在运行的时候出错,java虚拟机会自动的在出错的地方生成一个异常对象,而后java虚拟机会自动的在出错地方的附近寻找有没有对这个异常对象处理的代码,所谓异常处理代码就是try……catch语句和throws语句,如果没有,java虚拟机会自动的将这个异常对象抛给其调用函数,就这样层层抛出,如果在main当中也没有对这个异常对象处理的代码,java虚拟机最后会做一个简单粗暴的处理,将整个程序给终止掉,并将错误的信息在显示屏上输出

4.简述异常的分类

Error是编译时的错误,是程序员无法处理的异常

Exception是程序员可以捕获并处理的异常

所有异常的类都是Throwable的子类,普通类不能当做异常类,异常类必须要继承Throwable

异常分为2类:

1>凡是RuntimeException的子类异常,是程序员可以处理也可以不处理的异常

2>凡是Exception的子类异常但又不是RuntimeException的子类异常,是程序员必须进行捕获并处理的异常,否则编译时会出错

5.简述异常处理代码中try……catch的作用

1>try……catch语句本质上是对用户可能出现的错误进行的处理与提示,当用户出现了相应的错误之后,try……catch语句会将这个错误给捕获到,并进行相应的处理,以保证程序的流程不被打断,继续执行下去

2>只有try里面的代码出现了相应的错误,try……catch语句才会才会得到执行,否则try……catch语句将不会被执行

6.简述异常处理代码中try和catch关键字的具体含义

1>try即抛出的意思:java规定只有放在try里面的代码抛出的异常对象才有可能被捕获,即try里面存放的是可能抛出异常对象的代码,因此程序员必须自己判断哪些代码会出错,并将可能出错的代码放到try里面去;java编译器认为:一旦程序员将代码放到try里面去,意味着这些代码就会出错,就会抛出异常,因此如果代码不出错或不抛出异常的话就不要放到try里面去

2>catch即捕获的意思:catch当中的形式参数会自动的将异常对象给捕获到,并进行相应的处理;catch函数当中的printStack的作用是:输出错误的信息与错误的路径,便于程序的调试

7.简述异常处理代码块:

Try

{语句1;语句2;可能抛出异常的代码块…… }

Catch(Exception 1e){  }

Catch(Exception 2e){  }…………

Finall{ …………}的注意事项

1>如果语句1抛出了异常对象,语句2永远都得不到执行

2>所有的catch语句只能有一个被执行,并且有可能所有的catch语句都得不到执行

3>注意要先catch子类异常,在catch父类异常,如果先catch父类异常,在catch子类异常,则编译时会报错

4>注意子类重写方法抛出异常的范围不能大于父类被重写方法抛出异常的范围【为了保证多态的实现】【在线程当中经常用到这个知识】

5>无论try语句是否抛出异常,finally中的代码都会得到执行

8.简述异常处理代码块中finally的作用

1>finally语句为异常处理提供一个统一的出口,使得程序的控制流程在转到其它部分以前,能够对程序的状态做一个统一的管理

2>在finally语句中可以进行资源的清理工作,如关闭打开的文件,删除临时的文件等等

9.简述异常的两种处理方式

假设f方法抛出了A异常,则f方法有两种方式来处理A异常:

1>通过try……catch语句自己进行处理

2>自己不处理,通过throws A交给调用它的函数来进行处理

10.简述异常当中throw与throws两个关键字的用法

Throw

1>throw用来抛出异常对象:

格式为:throw new 异常名();

2>throw抛出的异常,必须是throwable的子类异常

Throws

1>throws只是一个声明,表示本函数不对抛出的异常A进行处理,交给调用它的函数来进行处理,最后交给jdk

格式为:void f() throws A

2>throws  A不表示调用f方法时,必须要对A异常进行捕获处理,可以根据异常的分类来进行处理

综上:

1>如果在一个方法内部已经对A异常通过try……catch语句进行捕获处理了,就不要在throws了

2>建议程序员对throws出的所有异常都进行捕获处理

11.简述异常的优缺点

优点:

1>增强了程序员对程序的可控性,保证了程序的流程顺利执行,不被打断

2>异常信息有利于代码的调试

3>强制程序员考虑程序的安全性与健壮性

缺点:

1>异常并不能够解决所有的问题

2>异常并不一定使程序的逻辑更加清晰,有的时候会导致程序的逻辑更加混乱


2015年11月20日20:41:32

 

 

0
1
查看评论

Java 异常 小知识点 关键地方已标出

任何程序即使经过百般检查、测试,总会有这样那样出乎意料的问题。 在java中把这些问题归结为两类,错误和异常, 错误是指程序遇到了很大的、几乎不可能自己修复的严重问题。 异常则是由于程序设计不当或者运行环境变更而导致程序无法正常运行。 相对错误来说,异常的严重性要小很多。 对于用户,是不关...
  • m75100313
  • m75100313
  • 2014-03-14 22:42
  • 482

java高级特性之--异常

java异常处理异常概念 什么是异常? 所谓异常就是在程序运行过程中发生的一些不正常事件。(如:除0溢出,数组下标越界,所要读取的文件不存在) 异常导致的后果? java处理过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息,并将其被提交给java运行时系统,这个过程成...
  • djx5344
  • djx5344
  • 2017-07-31 10:41
  • 64

java中10大常见异常

NO.1  Java.alng.NullPointerException  这个异常大家肯定都经常遇到,异常的解释是 “程序遇上了空指针 “,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创...
  • fu_pengfei_love822
  • fu_pengfei_love822
  • 2017-05-07 15:19
  • 1556

Java高级篇整理

面试中常常会问及Java细节相关的问题,而由于往往在平时中不会过多的涉及,所以不能得心应手。而通过阅读课本和网上资料,会有一定的帮助,但纸上得来终觉浅,绝知此事须躬行。以博客的形式梳理思路,通过一行行代码,深入理解Java细节,从而对于Java高级特性进行全面掌握。 Java三大特性 封...
  • mzd8341
  • mzd8341
  • 2017-07-26 19:50
  • 1204

成为java高级程序员需要掌握哪些

section 1 1.Core Java,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么...
  • zhibuguonicuo
  • zhibuguonicuo
  • 2017-03-04 21:04
  • 4494

java同步机制的几种实现方式

ThreadLocal 为每个使用变量的线程提供独立的变量副本,这样每个线程就可以独立改变自己的副本,不会影响其他的线程; InheritableThreadLocal在原有基础上进行了扩展,包括其子线程在内的线程都可以实现数据的同步; synchronized synchronized修饰...
  • l153097889
  • l153097889
  • 2017-03-26 14:38
  • 942

Java高级语法笔记-自定义异常类

自定义异常类 继承Exception,自定义异常类: 异常类要能够描述错误信息 比如,非法字符异常 IllegalCharException应该把非法字符的位置带上。 throws多种异常 throws用于声明本函数可能产生的异常的种类 void parse(String s) t...
  • qq78442761
  • qq78442761
  • 2018-01-09 10:01
  • 72

java高级特性之异常

java核心技术中使用异常机制的技巧: 1,异常处理不能代替简单的测试,异常的基本原则是只有在异常的情况下使用异常机制。 2,不要过分的细化异常 3,利用异常层级结构,寻找更加适合的子类或者自定义异常类 4不要压制异常,对应可能出现异常的方法通过throws的方式抛出 5检测错误的时候,苛...
  • xiaozhaorui
  • xiaozhaorui
  • 2016-07-17 08:44
  • 306

java21个知识点重点

1. JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。 JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以...
  • JerroLuo
  • JerroLuo
  • 2016-07-23 09:44
  • 14459

JAVA异常知识点总结

1、Java异常的体系结构
  • MichaelJY1991
  • MichaelJY1991
  • 2014-10-24 11:35
  • 787
    个人资料
    • 访问:655999次
    • 积分:9288
    • 等级:
    • 排名:第2362名
    • 原创:332篇
    • 转载:87篇
    • 译文:0篇
    • 评论:113条
    最新评论