引言:

Hello,我的好朋友们,又到我们相聚的时间了,今天我要和大家分享一些有关java异常处理的相关

知识,也是通过老师的讲解和相关材料的借鉴之后的一个比较系统的总结,真心希望写完这篇文章的我和看过这篇文章的朋友们能更加深入理解java的异常处理机制。话不多说,我们一起来学习吧。

一、Java异常的基础知识

1.区别exception与error

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(2/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。

2.java异常的类别:

(1)运行时异常

( 有一个共同的父类:RuntimeException),一些常见的子类如下:

ArithmeticException:算术运算异常

NullPointerException:空指针异常

ArrayIndexOutOfBoundsException:数组下标越界异常

ClassCastException:类型转换异常

NumberFormatException:数字格式化异常

NegativeArraySizeException:负数组长度异常

ClassCastException:造型异常

NumberFormatException:数字转化格式异常

IllgalArgumentException:非法参数值异常

IllegalStateException:对象状态异常,如对未初始化的对象调用方法

InterruptedException:线程中断

(注意:对于运行时异常,为了程序的健壮性,可以用if来判断控制)


  (2)编译时异常/非运行时异常/检测异常:

(Exception类中除了RuntimeException子类之外,都是编译时异常),一些常见的如下:

IOException:FileNotFoundException:指定文件未找到异常;

EOFException:读写文件尾异常;

MalformedURLException:URL格式错误异常;

SocketException:Socket通信异常。

其它异常:      ClassNotFoundException:无法找到需要的类文件异常。

3.java异常处理用到的关键字及使用

try,catch,finally,throw,throws

使用的结构如下:

try{

  //可能出现的异常程序代码(注:try仅仅能出现一次)

  }catch(异常类型1 异常的变量名1){

     //捕获到对应异常对象之后所做的处理1

  }catch(异常类型2 异常的变量名2){

  //捕获到对应异常对象之后所做的处理2

  }

......(此处可以根据对应的异常而出现多次,切记小范围的异常写在前面,大范围的异常写在后面,因为异常是从上到下逐个捕获的)

finally{

  //一定会执行的程序代码,多用于删除临时文件,关闭资源文件

(注:finally可以出现的次数为0-1次,切记当没有catch语句时一定要出现且仅出现一次finally)

  }

4.处理两类异常(编译时异常和运行时异常)的方法不同

(1)编译时异常:

一般都是try-catch-finally处理掉。方法中可以不处理,用throws上抛,最终抛到了main,main方法           中禁止用throws上抛异常。意味着main一定要处理;

(2)运行时异常:

可以用try-catch-finally处理,但是对效率和代码阅读都有影响,所有一般都是用if条件来使程序健壮。

5.Throwable类的两个子类(Exception和Error)的区别与理解:

Throwable类

Error

好比车上山的过程中山塌了,即虚拟机处理不了了

Exception

编译时异常:相当于车没油了,即需要java的积极处理
运行时异常:就像是路上的石子,让开它们行驶就好,即可以通过   if控制条件处理

6.自定义异常:

只能用throw来抛出,具体步骤如下:

(1). 继承自Exception或者Exception的子类。

(2).提供String做参数的构造,利用父类的String做参数的构造完成初始化,String内容用于对异常的描述。

(未完待续。。。)

转载于:https://blog.51cto.com/wangzhaoli/1256551

简述java异常处理机制相关推荐

  1. 简述java的异常处理机制_简述java异常处理机制

    引言: Hello,我的好朋友们,又到我们相聚的时间了,今天我要和大家分享一些有关java异常处理的相关 知识,也是通过老师的讲解和相关材料的借鉴之后的一个比较系统的总结,真心希望写完这篇文章的我和看 ...

  2. java异常处理机制详解

    java异常处理机制详解 参考文章: (1)java异常处理机制详解 (2)https://www.cnblogs.com/vaejava/articles/6668809.html 备忘一下.

  3. Java程序员从笨鸟到菜鸟之(十二)java异常处理机制

    异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出 ...

  4. Java异常处理机制很有意思

    版权声明:欢迎转载,请注明沉默王二原创. https://blog.csdn.net/qing_gee/article/details/43015379 前言:在网络上看到一篇<深入理解Java ...

  5. 多态的概念、对象上下转型、多态的应用、异常(异常概念、异常分类、java异常处理机制、try...catch...finally、throw和throws、自定义异常)

    多态的概念: 多态性是指同一个操作作用于某一类对象,可以有不同的解释,产生不同的执行结果. 多态存在的三个必要条件: ① 需要存在继承或实现关系 ② 同样的方法调用而执行不同的操作.运行不同代码(重写 ...

  6. Java异常处理深入理解_关于java异常处理机制的深入理解.doc

    关于java异常处理机制的深入理解.doc 关于JAVA异常处理机制的深入理解1引子TRYCATCHFINALLY恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过 ...

  7. java异常处理机制

    1.java异常处理机制 java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮.当程序运行出现意外情形时,系 统会自动生成一个 Exception对象来通知程序,从而实现将"业务 ...

  8. 最全最详细的Java异常处理机制

    一.异常概述与异常体系结构 异常概述 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格 ...

  9. 谈谈你对Java异常处理机制的理解

    谈谈你对Java异常处理机制的理解 先谈谈我的理解:异常处理机制可以说是让我们编写的程序运行起来更加的健壮,无论是在程序调试.运行期间发生的异常情况的捕获,都提供的有效的补救动作,任何业务逻辑都会存在 ...

最新文章

  1. 用NVIDIA A100 GPUs提高计算机视觉
  2. 三维渲染引擎设计与实践(四)
  3. 拉格朗日插值--11次切比雪夫多项式零点作为节点Python实现并计算误差
  4. 冬天到了:你检查过你的防冻液了吗!
  5. CentOS6.7安装SBT
  6. 6月统计|.NET薪资一旦高起来,岂是其他语言能比的!
  7. Java was started but returned exit code=13 问题解决
  8. tf之 MessageFilter 与 tf::MessageFilter理解与应用
  9. IDEA引入JDK/jar包无效、java 文件灰色右下角橙色java图标显示等问题解决办法
  10. flash 加载外部flash怎么卸载干净
  11. hbuilder中uniapp运行微信小程序模拟器时出错
  12. hx711基本原理讲解
  13. 如何绕过mac地址过滤_Maccms V8 后台Getshell #2(绕过过滤)
  14. 章文嵩博士和他背后的负载均衡(LOAD BANLANCER)帝国
  15. java中float、double和BigDecimal的精度问题(fastjson、Jackson以及实例化的方式)
  16. 几种主流快速开发平台选择
  17. 计算机基础知识截屏,电脑截屏技巧 截图快捷键是什么
  18. 日常工作要想有效提高工作效率 常用的在线工具网站
  19. Java中高级面试题部分答案解析
  20. 这边提供几个公共方法:MD5签名方法、获取时间戳、生成随机串、string转base64、base64转string

热门文章

  1. VC防止程序被多次运行 互斥体方法
  2. 2014年 12月15日 多线程编程
  3. iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯...
  4. 计算机原理与基础 —— (皇帝身边的小太监----寄存器)
  5. 前端的面试之旅(一)
  6. 应用架构设计原则、模式摘录
  7. Linux企业生产环境用户权限集中管理项目方案案例
  8. 点击切换图标方法,jquery bootstrap方法
  9. scala技术文章集锦
  10. [置顶] 显示/隐藏登录密码