文档章节

Java语言学习(九):异常处理

海岸线的曙光
 海岸线的曙光
发布于 2018/07/17 15:25
字数 622
阅读 4
收藏 0

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。常见的三种异常类型有:

  • 检查性异常,如打开一个不存在的文件
  • 运行时异常,如数组越界
  • 错误,如栈溢出

    所有的异常类是从 java.lang.Exception 类继承的子类,Exception类是Throwable 类的子类,如下图所示:

 

    常见的非检查性异常有:数组下标越界异常ArrayIndexOutOfBoundsException、空指针异常NullPointerException等,检查性异常有:类未发现异常ClassNotFoundException,表示应用程序试图加载类时,找不到相应的类,NoSuchMethodException表示请求方法不存在等等。

    捕获异常,如下实例:

FileInputStream fis = null;
try{
   File file = new File("d:\\a.txt");
   fis = new FileInputStream(file);
}catch(FileNotFoundException e){
   e.printStackTrace();
}finally{
   try{
      fis.close(); //释放资源
   }catch(IOException e){
      e.printStackTrace();
   }
}

    上面实例中使用的捕获异常的方式是:try/catch 代码块,它的最简单的用法为:

try
{
   // 程序代码
}catch(ExceptionName e1)
{
   //Catch 块
}

    当然,也可以使用多重捕获块,即后面有多个catch块,匹配不同的异常,finally块属于可选部分,无论是否发生异常,该代码块总会被执行,这里可用来运行清理类型等收尾善后性质的语句,如资源的释放等。

    如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常,仅可应用在方法体中,无论它是新实例化的还是刚捕获到的。用法如下:

//throws用法
public void Fun() throws Exception{
    //throw用法
    new throw Exception();
}

    除了Java中提供的异常类,我们也可以自定义异常类,需要继承Exception类或者Exception的子类。最简单的自定义异常类如下:

public class FunException extends Exception{}

    在类中可以提供一个无参构造方法和一个字符串参数的构造方法,方便输出调试信息。

© 著作权归作者所有

共有 人打赏支持
海岸线的曙光

海岸线的曙光

粉丝 44
博文 49
码字总数 57597
作品 0
朝阳
程序员
私信 提问
Java程序设计经典300例

《Java程序设计经典300例》共分为3篇。 第1篇 基础篇(第1~5章)本篇主要内容包括:Java语言基础、流程控制、数组、字符串和面向对象编程。通过本篇的学习,读者可以掌握Java开发环境的配置...

请叫我院长
2013/12/03
402
0
学习大数据需要Java基础吗?

近几年,很多人都听到过一个名词“大数据”也有一部分人选择学习了解大数据,那么大数据到底是什么,学习大数据需要有Java基础吗? 推荐一个大数据学习交流群 119599574每天晚上20:10都有一节...

大数据大咖
2018/06/10
0
0
尝试Java,从入门到Kotlin

之前一直使用C#开发,最近由于眼馋Java生态环境,并借着工作服务化改造的契机,直接将新项目的开发都转到Java上去。积攒些Java开发经验,应该对.NET开发也会有所启发和益处。 欢迎工作一到八...

编程SHA
2018/12/03
0
0
Java学习系列文章:说说Java中的异常

在正常的程序设计中,程序异常处理是非常关键和重要的一部分。试想一个项目中没有一个好的异常处理,这个项目会怎么样? 什么是异常 异常其实是程序上的错误,包括程序逻辑错误和系统错误。比...

java高级架构牛人
2018/06/29
0
0
与Java无缝兼容,Kotlin语言的优缺点及建议

从Android 7.0开始,谷歌使用的API从Oracle JDK切换到了open JDK,这对于谷歌来说是一个艰难的决定。对于开发者来说,却倍感兴奋,这意味着长期的官司问题也许就此结束,Android系统开发又可...

架构师springboot
01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ZStack--工作流引擎

在IaaS软件中的任务通常有很长的执行路径,一个错误可能发生在任意一个给定的步骤。为了保持系统的完整性,一个IaaS软件必须提供一套机制用于回滚先前的操作步骤。通过一个工作流引擎,ZStac...

ZStack社区版
18分钟前
2
0
Eclipse 安装lombok

1.首先打开lombok官网:https://projectlombok.org/ 2.选择下载 3.使用java -jar 运行jar包(一般情况下双击即可) 4.安装 5.重启IDE...

hengbao5
23分钟前
4
0
混合式开发框架资料汇总

1.quickhybrid 2.kerkee 3.Hybrid

IT追寻者
30分钟前
2
0
PyCharm入门教程——基本编辑程序

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
32分钟前
2
0
分布式、高并发、多线程

分布式 分布式是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。包括但不限于:分布式文件系统,分布式缓存,分布式数据库,分布式计算。 分布式的实现有两种形式: 水平扩展:...

细节探索者
36分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部