Java的异常机制分析及处理办法

众所周知,java中的异常(Exception)机制很重要,程序难免会出错,异常机制可以捕获程序中的错误,用来提高程序的稳定性和健壮性。

java中的异常分为Checked Exception(非Runtime Exception)和UnChecked Exception(Runtime Exception),所有的异常类都直接或间接的继承Exception。Exception又直接继承自Throwable类,Throwable类的直接子类还有error类,不过当出现error时,程序会直接退出执行,程序处理不了error,所以这里重点讨论Exception类。RuntimeException类继承自Exception,运行时异常都直接或间接继承自RuntimeException类。其他继承Exception类的是非运行时异常,在编译期间可发现。运行时异常是在运行时才会出现的,如算术除零,在编译期间是可以通过的,但在运行时会抛出运行时异常,除数不能为零。

java的异常处理有两种

1、捕获异常

结构如下

try{//执行可能产生异常的代码}catch(RuntimeException e){//对捕获的异常进行处理}catch(Exception e)//可定义捕获多个异常{//对捕获的异常进行处理}finally{//捕获完后要执行的代码,可有可无,如果有的话就一定会执行,不管有没有异常}try-catch-finally

如果异常被catch捕获后,后面还有catch语句就不会执行了,但如果有finally的话就一定会执行finally块里面的语句。

2、声明抛出异常

在调用会产生异常的方法所在的方法声明处声明throws Exception,此方法将不会对该类异常进行处理,而是由该方法的调用者处理。

3、人为的'抛出异常

直接在方法内抛出异常,throw exception;

对于运行时异常推荐不对其进行处理。

自定义异常是定义了一个继承自Exception类的子类,一般不会定义继承自RuntimeException类,在try块中存在return语句时,如果有finally块语句,那么也要先执行完finally块的语句之后再返回,但如果try块中存在System.exit(0)语句,就不会执行finally块的语句,因为System.exit(0)会终止当前运行的java虚拟机,程序会在虚拟机终止前结束执行。

class myException extends Exception{ public myException(String str) { super(str); }}myException

异常在文件处理,输入输出流的应用场合等都会用上。

常见的异常类型有:

1、java.lang.NullPointerException:空指针异常,出现该异常的原因就是某个引用为null,但程序中又调用了该引用的某个方法。

2、java.lang.ClassNotFoundException :找不到指定的类,可能是类未定义。

3、java.lang.ArithmeticException:算术异常,如除数为零。

4、FileNotFoundException:在文件处理中,找不到指定的文件。

5、IOException:输入输出流异常

6、SQLException:sql异常,执行sql语句出现错误。

此外还有许多类型的异常,在以后的编程中会遇到。相信本文所述对大家的Java程序设计有一定的借鉴价值。

【Java的异常机制分析及处理办法】相关文章:

java提供两种处理异常的机制_Java的异常机制分析及处理办法相关推荐

  1. java提供两种处理异常的机制_浅析Java异常处理机制

    关于异常处理的文章已有相当的篇幅,本文简单总结了Java的异常处理机制,并结合代码分析了一些异常处理的最佳实践,对异常的性能开销进行了简单分析. 博客另一篇文章<[译]Java异常处理的最佳实践 ...

  2. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  3. java中两种异常类型_Java中的三种异常类型

    java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...

  4. java的两种运行方式Applet和Application你真的懂吗

    对两者的简介 他们是java的两种程序,能够独立运行的程序称为Java应用程序也包含我们正常写的java文件所生成的可执行程序(Application)其运行和普通的java文件相同.Java语言还有 ...

  5. java的两种比较器

    比较算法 日常生活中,如果想比较两个数的大小,可采用做差的方式,做差结果的正负可用来判断两个数的大小.假设A - B = C 若整数C > 0,说明 A > B ; 若整数C = 0,说明 ...

  6. Java中两种抛出异常的方式

    Java中两种抛出异常的方式 在Java中有两种抛出异常的方式,一种是throw,直接抛出异常,另一种是throws,间接抛出异常. 直接抛出异常是在方法中用关键字throw引发明确的异常.当thro ...

  7. Java多线程两种实现方式的对比

    Java多线程两种实现方式的对比 一种,直接继承Thread类 一种,实现Thread类的Runnable接口 两种方式的区别 比如,售票厅有四个窗口,可以发售某日某次列出的100张车票,此时,100 ...

  8. 十进制转二进制,用java的两种基本方法,适合新手

    十进制转二进制,用java的两种基本方法,适合新手 1.String字符串拼接法 package cn.sxt;import java.util.Scanner;/*** 6. 从键盘输入某个十进制整 ...

  9. Java实现两种方式 RSA签名, RSA签名校验

    Java实现两种方式 RSA签名, RSA签名校验 通过 .keystore密钥文件实现 生成密钥文件 test2.keystore 相关使用 通过密钥生成器实现 Byte数据转换成 Hex字符串 相 ...

  10. 分析Java的两种数据类型

    一.Java的两种数据类型 1.基本数据类型:四类八种 整数型:byte short int long 浮点数型:float double 布尔型:boolean 字符型:char 2.引用数据类型: ...

最新文章

  1. error:socket failed: EPERM (Operation not permitted)
  2. jQuery UI 之 LigerUI 快速入门
  3. 2.7 负采样-深度学习第五课《序列模型》-Stanford吴恩达教授
  4. 记录:JS异步解决方案的发展以及优缺点
  5. cdb内存 oracle,【CDB】怎样修改PDB的内存参数
  6. wordvba编程代码大全_这几本基础编程书籍一定要看
  7. linux查看redis表内所有数据,Redis数据库(list类型)
  8. sql server 分区_SQL Server:锁定设置以用于增强分区功能
  9. jsf标签_JSF Facelet标签示例教程
  10. QCon全球软件开发大会:推动创新,实现技术落地
  11. 5.3使用自定议的测试数据库文件
  12. 自动填充固定行数的 GridView (转)
  13. cloudflare免费证书_国外Cloudflare免费ssl证书设置
  14. python爬取笔趣阁小说
  15. android 5.1感叹号,关于5.1 WIFI显示感叹号
  16. Office 2013-2021 C2R Install
  17. jupyter添加快捷方式
  18. 可见光成像通信(OOC)驱动频率区域的计算
  19. element ui 图标样式被覆盖解决
  20. 德银天下港交所上市:市值39亿港元 陕汽集团是大股东

热门文章

  1. unity物体挂leap交互脚本后在另一个相机视野中看不见问题的解决
  2. 190702每日一句 孤独之前是迷茫,孤独之后是成长
  3. 26个英文字母的爱情哲理寓意
  4. paip.论程序断点的类型以及设置总结
  5. paip.SQL特殊字符转义字符处理
  6. (转)Julia PkgServer 镜像服务
  7. 蚂蚁自研数据库OceanBase基于木兰公共协议正式开源
  8. 新兴IT企业特斯拉(二)——特斯拉的诞生
  9. 红帽变蓝帽对Ceph有何影响?
  10. 【水果识别】基于matlab GUI苹果质量检测及分级系统(带面板)【含Matlab源码 1613期】