在Java编程中,我们或多或少地会遇到一些程序异常的情况,为了不影响程序的正常执行,我们需要在程序发生异常的情况下,进行一些操作来防止造成更大的损失。例如在我们平时的除法运算中,被除数是不能为0的,如果为0就会造成异常,同样在计算机程序中,如果除以一个为0的数字,那么这个语句就会是一个错误的语句,这样就会造成程序异常,后面的程序就会执行不下去,所以Java使用异常机制可以处理这样的情况,在出现这种情况之后,把这个异常捕获进行处理,从而不会影响后面的程序。

在Java中使用try{可能发生异常的程序模块}catch(Exceptione){}finally{}的语法规范来进行异常的处理,将可能发生异常的地方放入到try的模块中,当模块中的语句确实发生了异常之后,就会被后面的catch进行捕获,然后我们可以在catch模块中进行异常的处理,处理完成之后,程序会继续往下进行,不会影响到后面的处理。

有时候在我们捕获了异常之后,由于try里面的异常语句之后还有其他的语句需要执行,比如我们开始打开了文件,但是在读取文件的时候发生了异常,但是我们需要在最后将文件关闭,否则文件就会被一直占用,这时候我们可以在finall模块中将文件进行关闭。

在Java中有一类异常叫做运行时异常(RuntimeException),这类异常情况我们可以不强制使用trycatch进行捕获程序也可以编译执行,比如空指针异常或者数组越界的异常,这种情况,如果在程序没有遇到这种情况的时候,程序正常执行,但是当程序遇到这些情况,程序就会报错了。还有另一类的异常非运行时异常,这类异常需要我们需要进行trycatch进行捕获处理,否则的话程序不可编译,在编译的时候就会报错,例如文件操作的时候,就属于这类的异常。

在我们编码的过程中,有时候不想在当前模块或者方法里面处理异常,则我们可以将异常往上抛,也就是将异常抛给调用我们这个方法的那个模块,在那个模块中进行异常的处理,我们可以使用关键字throws关键字将异常抛给上一级,基本的语法格式是:publicvoidfun()throwsIOException{},这样我们就不需要强制在当前方法中进行trycatch处理。

原文:Java基础学习:java文件空指针异常处理

作者:动力节点

来源:微信公众号

java catch空指针异常处理_Java基础学习:java文件空指针异常处理相关推荐

  1. java 数字运算异常_Java基础之:异常及异常处理

    Java基础之:异常及异常处理 我们将java程序执行过程中出现的不正常现象称为异常,例如:之前遇到的数组下标越界异常,空指针异常等等 执行过程中发生的异常事件分为两类: Error(错误):Java ...

  2. java的技术定义_java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

  3. java三大特性 继承_java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  4. java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...

    学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...

  5. java aqs实现原理_JAVA基础学习之-AQS的实现原理分析

    AbstractQueuedSynchronizer是JUC的核心框架,其设计非常精妙. 使用了 Java 的模板方法模式. 首先试图还原一下其使用场景: 对于排他锁,在同一时刻,N个线程只有1个线程 ...

  6. java键盘输入运算符_Java基础学习-三元运算符和键盘录入的基本步骤和使用

    1.键盘录入数据概述 我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,把数据改进为键盘录入,提高程序的灵活性. 2.如何实现键盘录入数据呢?(目前先记住就行) 导包 ...

  7. java数据类型转换方向_java基础学习篇02(数据类型转换和基本面试题)

    JAVA基本数据类型转换 java中的数据类型,分为,引用数据类型和基本数据类型.基本数据类型有8中 整型:byte 8位 . short 16位 .int 32位 .long 64位. (8位=1个 ...

  8. java入门第六天课程_Java基础学习第六天 小游戏

    /** * 游戏开始 * @author LENOVO * */ public class Game_Start { public static void main(String[] args) { ...

  9. java单引号转义_Java基础入门——Java语言基础(上)

    本篇我们开始进入Java的学习,首先在学习如何编写Java语言前要先了解Java程序的基本结构. 一.Java程序的基本结构 一个Java程序的基本结构大体可以分为包.类.main()主方法.标识符. ...

最新文章

  1. centos下加入mysql环境变量
  2. 软件构造学习笔记-第十四周、十五周
  3. Text模式和PDU模式的区别
  4. 论文学习1-DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning
  5. php发送邮件时间间隔,在使用phpmailer群发邮件时如何设置发送的时间间隔?
  6. Ext 组件的一些操作
  7. ROS 教程之 navigation : 用 move_base 控制自己的机器人(2)
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的保险业务管理系统
  9. 港府多措施推广使用电动车 放宽条件吸引车主换车
  10. Endnotex8在office2013中加载时崩溃的解决方案(基于win7系统win10的没测试过)
  11. 使用通达信一次性获取沪深300成分股
  12. 【工作感悟】在一家普通互联网公司实习四个月的总结和感想
  13. 《嵌入式-STM32开发指南》第三部分 外设篇 - 第4章 超声波测距
  14. 数据可视化_科学统计图表5——ggplot绘制南丁格尔玫瑰图
  15. Codeforces469div2F curfew(贪心)
  16. 谷歌首席决策科学家:AI难免犯错,唯有人类可以悬崖勒马
  17. anbox 使用情况_Anbox让您在Linux桌面上运行Android应用程序
  18. JOJ 上的典型题目分类以及参考书目 (以及我的整理)
  19. 【JAVA SE】 JAVA基础强袭之路 数据类型及其转换和提升全面讲解(猛男细节+保底一个收藏)
  20. 【技术】python 爬虫一招解决SSl 报错SSLError

热门文章

  1. 不删除分区的情况下怎么合并分区?如何合并磁盘分区
  2. codeforces C2. Pokémon Army (hard version)(模拟)
  3. jpg图片怎么压缩大小,3个有效工具分享
  4. 第五章 资本主义发展的历史进程
  5. 【vue】avue-crud配置大全-持续更新
  6. java科大讯飞语音合成,亲测
  7. 单核性能强的服务器cpu,Cpu单核性能强和多核性能强都有什么用?
  8. 开源工单系统 python_PESCMS Ticket 客服工单系统 v1.2.0 发布
  9. 车架号VIN码精准查询车辆信息
  10. Oracle表空间时间点恢复技术TSPITR