第四章 异常处理
 
时间:2017年4月26日11:16:39~2017年4月26日11:28:58
章节:04章_01节 04章_02节
视频长度:20:46+01:16
内容:异常的概念
心得:
Java异常是JAVA提供的用于处理程序中错误的一种机制
实在运行的过程中发生的一些异常事件(比如除0溢出,数组越界,要读取的文件不存在)
设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果
 
JAVA程序的执行过程中 如果出现异常事件,可以生成异常类的对象,该异常对象封装了异常事件的信息并被提交给JAVA运行时的系统,这个过程称为抛出(throw)异常
 
当JAVA运行时系统受到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一个过程称为捕获(catch)异常。
 

 
时间:2017年4月26日11:29:02~2017年4月26日11:32:52
章节:04章_03
视频长度:19:47
内容:异常的分类
心得:
Throwable -->Error , Exception 
Error -->难以处理的称为error
Exception-->RuntimeException 与 其他的Exception
runtimeException 经常出的异常 可以不捕获
另外的exception 必须要被捕获(一般经常throws的)
例如IOEXCEPTION 之类的
图片
 

 
 
时间:2017年4月26日11:33:03~2017年4月26日14:38:31
章节:04章_05
视频长度:S9:29
内容:finally语句
心得:
try{
//可能出现异常的代码
}
后面可以跟着一个或者多个catch
每个catch代码段声明能处理的一种特定类型的异常并提供处理的方法

 
 
finally 的语句始终会执行
 
对这句话的情况作了一个简单的测试
 
分别测试了当堆内存溢出,栈内存溢出与system.exit()语句 还有各种return的情况finally的执行情况
 
第一种堆溢出

 
先打印异常 再输出finally语句
 
第二种 栈溢出

 
先输出finally语句 再打印异常
 
以上两种情况是这样的
try{
通过不断的往堆或者栈里面加东西 使得内存溢出
}finally{
system.out.println("..........")
}
 
然后如果作一个小小的改变
try{
通过不断的往堆或者栈里面加东西 使得内存溢出
}finally{
再往内存里加一个语句
system.out.println("..........")
}
 

也不输出了 
但是实际上还是进入了finally 只是强行关闭了虚拟机
 
第三种 System.exit(0)或者-1
不进入finally语句
 
第四种 关于return
try里面有return finally没有的话是这样
debug跑到return语句之后 先执行return 
接着 进入finally 
最后 返回return结果 
也就是说 
finally模块语句的位置是在 执行return之后 返回return之前
 
如果finally里面有return的话是 直接覆盖掉try或者catch里面的return 语句
 
因此得出结论:
1不终止JVM的情况下,finally中的代码一定会执行。
2.finally模块语句的位置是在 执行return之后 返回return之前
 
如果finally里面有return的话是 直接覆盖掉try或者catch里面的return 语句
 
 
时间:2017年4月26日14:38:31~2017年4月26日14:50:05
章节:04章_06
视频长度:12:57
内容:声明方法抛出的异常
心得:
throws 异常
抛出异常的方法 调用的话 可以继续抛
但是到最后一步必须要捕获(不是runtimeException)
 
当然可以在main方法里抛 但是非常不建议。。
最终还是要捕获的
要不然出了错都不知道怎么回事
能处理的就处理 不能处理往外抛
 

 
 
时间:2017年4月26日14:50:37~2017年4月26日15:07:38
章节:04章_07
视频长度:12:01 +1:28
内容:异常的其他问题
心得:
多次catch的时候
遵循先catch小异常 再catch大异常
否则编译无法通过(因为已经捕捉到了)
并列的就没有这种限制
 
关于自定义异常
1.通过继承Exception类声明自己的异常类
2.在方法适当的位置 生成自定义异常的实例,并用throw语句抛出
3.在方法的声明部分用throws语句声明该方法可能抛出的异常
 

 
注意: 重写方法需要抛出与所抛出异常类型一致或不抛出异常
 
总结5个关键字 try catch finally throw throws

Java基础知识二次学习--第四章 异常的更多相关文章

  1. Java基础知识二次学习--第三章 面向对象

    第三章 面向对象   时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...

  2. Java基础知识二次学习--第六章 常用类

    第六章 常用类   时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...

  3. Java基础知识二次学习--第七章 容器

    第七章 容器   时间:2017年4月27日15:08:30 章节:07章01节~07章04节 视频长度:20:21 +12:38 +3:55 +2:57 内容:容器API 心得: Java API ...

  4. Java基础知识二次学习--第五章 数组

    第五章 数组 时间:2017年4月26日15:11:30~2017年4月26日15:15:54 章节:05章_01节  视频长度:09:30 内容:一维数组的内存分析 心得: Java中数组是引用类型 ...

  5. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

  6. Java基础知识二次学习--第八章 流

    第八章 流   时间:2017年4月28日11:03:07~2017年4月28日11:41:54 章节:08章_01节 视频长度:21:15 内容:IO初步 心得: 所有的流在java.io包里面 定 ...

  7. Java基础知识二次学习-- 第二章 基础语法与递归补充

    第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...

  8. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  9. java基础知识(二)

    java的布局管理: borderLayout:则将板块分为东西南北中五个方向,每添加一个组件就要指定组件摆放的方位,放置在东西南北四个方向的组件将贴边放置.当拉大Frame的时候,处在center( ...

随机推荐

  1. get你想象不到的技能

    1.取消选取.防止复制 <body selectStart="return false"> </body> 2.不允许粘贴 <body onpaste ...

  2. mac jmeter 的使用

    1.下载 mac下载地址:http://jmeter.apache.org/download_jmeter.cgi,下载apache-jmeter-3.1.tgz 2.下载完毕后解压,得到安装包 3. ...

  3. 文本挖掘预处理之TF-IDF

    在文本挖掘预处理之向量化与Hash Trick中我们讲到在文本挖掘的预处理中,向量化之后一般都伴随着TF-IDF的处理,那么什么是TF-IDF,为什么一般我们要加这一步预处理呢?这里就对TF-IDF的 ...

  4. C#, VB.NET如何将Excel转换为PDF

    在日常工作中,我们经常需要把Excel文档转换为PDF文档.你是否在苦恼如何以C#, VB.NET编程的方式将Excel文档转换为PDF文档呢?你是否查阅了许多资料,运用了大量的代码,但转换后的效果依 ...

  5. 前端借助dom-to-image把HTML转成图片并通过ajax上传到服务器

    之前接到了一个任务,把jsp中的table转成一个图片,保存在指定文件夹并显示在前端. 我的思路是:一.引用第三方js在前端把table转成图片 二.通过ajax把图片上传到服务器,保存在指定文件夹 ...

  6. mpusher 源码编译 for windows X64

    mpusher 源码编译 for windows X64 对于java我是小白,通过一步步的摸索,将经验总结下来,给更多码友提供入门的帮助.一个人的摸索是很困难的,本教程感谢 [MPush开源消息推送 ...

  7. vue获取dom元素内容

    通过ref来获取dom元素 在vue官网上对ref的解释 ref 被用来给元素或子组件注册引用信息.引用信息将会注册在父组件的 $refs 对象上.如果在普通的 DOM 元素上使用,引用指向的就是 D ...

  8. 【C和指针】笔记1

    数据 基本数据类型 整型家族:包含字符,短整型,整型和长整型 整型相互之间大小规定如下: 长整型至少和整型一样长,而整型至少应该和短整型一样长. short int至少16位,long int至少32 ...

  9. 串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧

    串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧 本例程中用51单片机作为Modbus从机,从机的设备地址为2,从机有4个寄存器, ...

  10. 【从无到有】教你使用animation做简单的动画效果

    今天写写怎么用animation属性做一些简单的动画效果 在CSS选择器中,使用animition动画属性,调用声明好的关键帧 首先声明一个动画(关键帧): @keyframes name{ from ...