黑马程序员--异常处理--2nd day
2015-06-18 21:49
260 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
异常就是程序在运行时出现的不正常情况。
异常的由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。
在java中用类的形式对不正常情况进行了描述和封装对象。描述不正常的情况的类,就称为异常类。
1. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性。
2. 其实异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述。
3. 不同的问题用不同的类进行具体的描述。比如角标越界、空指针异常等等。
4. 问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系。
JDK中--------java.lang.Throwable:
Throwable:可抛出的。
Error:错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。
Exception:异常,可以有针对性的处理方式
处理方式有两种:1、捕捉;2、抛出。
1、捕捉异常的方法:java有针对性的语句块进行处理。
try {
需要被检测的代码;
}
catch(异常类 变量名){
异常处理代码;
}
fianlly{
一定会执行的代码;
}
try catch finally 代码块组合特点:
(1)try catch finally
(2)try catch(多个)当没有资源需要释放时,可以不用定义finally。
(3)try finally 异常无法直接catch处理,但是资源必须关闭。
捕获异常Demo
class Demo
{
public static void main(String[] args) //throws Exception
{
Demo d = new Demo();
try
{
int x = d.div(4,0);
System.out.println("x="+x);
}
catch (Exception e)
{
System.out.println(e.toString());
}
finally
{
System.out.println("over");
}
}
}
2、抛出异常:如果让一个类成为异常类,必须要继承异常体系,因为只有成为异常体系的子类才有资格具备可抛性
抛出异常的两个关键字:throw和throws,两个关键字的区别
(1)throws用于标识函数暴露出的异常类,并且可以抛出多个,用逗号分隔。
(2)throw用于抛出异常对象。
(3) thorws用在函数上,后面跟异常类名。
(4)throw用在函数内,后面跟异常对象。
抛出异常Demo
class Demo{
public static int method(int[] arr, int index) throws NullPointerException,FuShuIndexException{
if(arr == null)
throw new NullPointerException("没有任何数组实体");
if(index < 0){
throw new FuShuIndexException("数组的角标是负数啦!" );
}
return arr[index];
}
}
异常就是程序在运行时出现的不正常情况。
异常的由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。
在java中用类的形式对不正常情况进行了描述和封装对象。描述不正常的情况的类,就称为异常类。
1. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性。
2. 其实异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述。
3. 不同的问题用不同的类进行具体的描述。比如角标越界、空指针异常等等。
4. 问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系。
JDK中--------java.lang.Throwable:
Throwable:可抛出的。
Error:错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。
Exception:异常,可以有针对性的处理方式
处理方式有两种:1、捕捉;2、抛出。
1、捕捉异常的方法:java有针对性的语句块进行处理。
try {
需要被检测的代码;
}
catch(异常类 变量名){
异常处理代码;
}
fianlly{
一定会执行的代码;
}
try catch finally 代码块组合特点:
(1)try catch finally
(2)try catch(多个)当没有资源需要释放时,可以不用定义finally。
(3)try finally 异常无法直接catch处理,但是资源必须关闭。
捕获异常Demo
class Demo
{
public static void main(String[] args) //throws Exception
{
Demo d = new Demo();
try
{
int x = d.div(4,0);
System.out.println("x="+x);
}
catch (Exception e)
{
System.out.println(e.toString());
}
finally
{
System.out.println("over");
}
}
}
2、抛出异常:如果让一个类成为异常类,必须要继承异常体系,因为只有成为异常体系的子类才有资格具备可抛性
抛出异常的两个关键字:throw和throws,两个关键字的区别
(1)throws用于标识函数暴露出的异常类,并且可以抛出多个,用逗号分隔。
(2)throw用于抛出异常对象。
(3) thorws用在函数上,后面跟异常类名。
(4)throw用在函数内,后面跟异常对象。
class Demo{
public static int method(int[] arr, int index) throws NullPointerException,FuShuIndexException{
if(arr == null)
throw new NullPointerException("没有任何数组实体");
if(index < 0){
throw new FuShuIndexException("数组的角标是负数啦!" );
}
return arr[index];
}
}
相关文章推荐
- 剑指offer-第四章解决面试题的思路(二叉树的镜像)
- 黑马程序员------反射
- 黑马程序员------比较器
- 黑马程序员------集合
- 黑马程序员——集合框架
- 黑马程序员--extern与函数分析
- 黑马程序员——JAVA多线程
- 黑马程序员——高新技术---字符串变量
- IO流部分
- 黑马程序员——JAVA-IO
- 黑马程序员----Java基础之反射
- 一个程序员的生命周期
- 一个程序员的生命周期--有感
- 【剑指offer】面试题13、在 O(1)时间上删除链表结点
- 《一个程序员的生命周期》读后感
- 黑马程序员JAVA笔记1--java基础和概述
- "一个程序员的生命周期"读后感
- 黑马程序员--面向对象
- 黑马程序员——java基础——面向对象的多态
- 读后感for《一个程序员的生命周期》