当前位置: 首页 > news >正文

java异常机制分析

java异常机制分析

本文实例分析了java的异常机制,分享给大家供大家参考。相信有助于大家提高大家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-http://catch-finally

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

2、声明抛出异常

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

3、人为的抛出异常

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

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

自定义异常是定义了一个继承自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:sqluIRBmUnmGh异常,执行sql语句出现错误。

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

http://www.lryc.cn/news/113884.html

相关文章:

  • 浅谈Python中的内存管理 程序的内存布局
  • (具体解决方案)训练GAN深度学习的时候出现生成器loss一直上升但判别器loss趋于0
  • Redis 安装以及配置隧道连接
  • FFmpeg 使用总结
  • 出现Error: Cannot find module ‘compression-webpack-plugin‘错误
  • Elasticsearch 摄取管道 — 检测到管道的死循环
  • C# ListBox自动滚动方法
  • 使用(Ajax原理)Promise + XHR实现请求数据
  • 【HTML】<input>
  • 数据结构中一些零碎且易忘的知识点
  • 2023上半年京东烘干机行业品牌销售排行榜(京东商品数据)
  • ADS版图画封装学习笔记
  • 空地协同智能消防系统——无人机、小车协同
  • 篇二十二:解释器模式:处理语言语法
  • 【LeetCode 75】第二十一题(1207)独一无二的出现次数
  • node中使用express+mongodb实现分页查询
  • 信创优选,国产开源。Solon v2.4.2 发布
  • Java HTTP client常见库
  • 【Java基础教程】(四十四)IO篇 · 上:File类、字节流与字符流,分析字节输出流、字节输入流、字符输出流和字符输入流的区别~
  • 电商数据获取:网络爬虫还是付费数据接口?
  • 树形结构——二叉树类型
  • JavaScript对象的方法与原型链
  • Oracle入门初探---第一章 批量创建表、索引并插入测试数据
  • 全面讲解最小二乘法
  • 【阻止IE强制跳转到Edge浏览器】
  • C++/Linux项目——日志系统(简介)
  • 【Redis面试题整理一】
  • 前端权限验证之自定义指令v-permission
  • c++使用条件变量实现生产消费问题(跨平台)
  • 怎么快速搭建BI?奥威BI系统做出了表率