浅谈Java中try catch 的用法
我们编译运行程序出错的时候,编译器就会抛出异常。抛出异常要比终止程序灵活许多,这是因为
的Java提供了一个“捕获”异常的的处理器(处理器)对异常情况进行处理。
如果没有提供处理器机制,程序就会终止,并在控制台上打印一条信息,给出异常的类型.L
比如:使用了NULL引用或者是数组越界等。
异常有两种类型:未检查异常和已检查异常对于已检查异常,处理器器将会检查是否提供了处理器。
然而有许多の异常,如:访问null引用,都属于未检查异常。编译器不会查看是否为这些错误提供了
处理器。毕竟,应该用严谨的态度来对待写代码,依次避免这些错误的发生,而不是将精力花在编写
异常处理器上。
废话少说,show coder:
/ * try catch:自己处理异常
* try {
*可能出现异常的代码
*} catch(异常类名A e){
*如果出现了异常类A类型的异常,那么执行该代码
*} ...(catch可以有多个)
* finally {
*最终肯定必须要执行的代码(例如释放资源的代码)
*}
*代码执行的顺序:
* 1.try内的代码从出现异常的那一行开始,中断执行
* 2.执行对应的catch块内的代码
* 3.继续执行try catch结构之后的代码
*注意点:
* 1.如果catch内的异常类存在子父类的关系,那么子类应该在前,父类在后
* 2。如果最后中有返回语句,那么最后返回的结果肯定以最终中的返回值为准
* 3。如果最后语句中有回报,那么没有被处理的异常将会被吞掉
*重写的注意点:
* 1.儿子不能比父亲的本事大
* 2.儿子要比父亲开放
* 3.儿子不能比父亲惹更大的麻烦(子类的异常的类型不能是父类的异常的父类型)
*异常类Api:
* 1。的getMessage():获取异常描述信息字符串
* 2。的toString():返回异常类的包路径和类
名和异常描述信息字符串 * 3。的printStackTrace():除了打印的toString的信息外,还要打印堆栈信息
* /
上面一段注释来自网上这位博主的,觉得写的很好,传送门地址:https://blog.csdn.net/wanghuiwei888/article/details/78818203
package Bird;import java.io.FileNotFoundException;
import java.io.FileReader;//
public class TestYc {public static void main(String[] args) {try{FileReader fr = new FileReader("c:/abc.txt");} catch (FileNotFoundException e) {//打印输出异常e.printStackTrace();} Mother mother = new Mother();mother.bbb();//1.編譯時異常//讀取該路徑"c:/abc.txt"下的文件/* try {FileReader fr = new FileReader("c:/abc.txt");}catch(FileNotFoundException e) {//打印输出异常e.printStackTrace();}*/int [] arr = new int[] {1,2,3};System.out.println(arr[2]);}
}class Mother {private Boy b = null;// 构造器public Mother() {b = new Boy();}public void bbb() {// TODO Auto-generated method stub//调用带有异常的方法try {b.aaa();}catch(FileNotFoundException e) {e.printStackTrace();}}
}class Boy {// throws 把异常抛给上层的调用者public void aaa() throws FileNotFoundException{FileReader fr = new FileReader("c:/abc.txt");}
}
运行截图,文件打开不存在:
正常运行截图:
GG :)
浅谈Java中try catch 的用法相关推荐
- 浅谈Java中的Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- 浅谈JAVA中如何利用socket进行网络编程(二)
转自:http://developer.51cto.com/art/201106/268386.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...
- aba会导致问题_浅谈Java中ABA问题及避免
本文主要研究的是关于Java中ABA问题及避免的相关内容,具体如下. 在<Java并发实战>一书的第15章中有一个用原子变量实现的并发栈,代码如下: public class Node { ...
- java 线程aba,浅谈Java中ABA问题及避免,浅谈javaaba避免
浅谈Java中ABA问题及避免,浅谈javaaba避免 本文主要研究的是关于Java中ABA问题及避免的相关内容,具体如下. 在<Java并发实战>一书的第15章中有一个用原子变量实现的并 ...
- java 中的单元测试_浅谈Java 中的单元测试
单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...
- java中修饰常量的事_浅谈java中的声明常量为什么要用static修饰
今天定义一个类常量,想着也只有这个类可以用到,就没用static关键字修饰.结果sonar代码检查提示: Rename this field "PERSON_TYPE_USER" ...
- scale和java比较_浅谈java中BigDecimal的equals与compareTo的区别
这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等). [注:以下所讲都 ...
- file相对路径java_浅谈java 中文件的读取File、以及相对路径的问题
一.对于java项目中文件的读取 1.使用system 或是 系统的properties对象 ①直接是使用 string relativelypath=system.getproperty(" ...
- java中的强制类型转换注意事项_浅谈Java中强制类型转换的问题
为了更好的理解我们先看下面的例子: package com.yonyou.test; import java.util.ArrayList; import java.util.Iterator; im ...
最新文章
- 【python】一个目录里面多个python程序文件,统计一下里面有多少行代码。即分别列出:代码、空行、注释的行数。
- EXE文件中的程序的加载过程 SA是什么呢?PSP是什么?
- 性能测试相关名词解释
- python学习——把计算GC含量的代码封装成函数
- 奇妙的安全旅行之DSA算法
- c语言调用createthread线程的头文件_易语言API多线程总汇
- ASI进行POST网络请求
- CF Educational Codeforces Round 57划水记
- 解决pycharm debug时 界面下方不出现step等按钮以及变量值的情况
- 火箭、飞行器、探测器的发射
- es查询两列相减大于某个值的数据_南京师范大学汇编语言期末试卷
- 计算机自动隐藏桌面图标,AutoHideDesktopIcons-定时、自动隐藏桌面图标,让电脑更清爽!...
- 使用计算机粘贴板的步骤,电脑中快速打开剪贴板查看器的方法
- Python学习之路-爬虫(四大名著)
- hdu 5285 wyh2000 and pupil 二分图染色发判定,求最大匹配
- 提取图片文字,python三行代码足矣!
- MICCAI 2019 Proceeding 论文集part1-6
- Linux输入子系统框架
- 阿里国际站新版关键词你升级了吗?
- 中文翻译泰文难吗?如何做好泰文翻译?