Exception-异常处理(java)的总结

关于异常处理的总结
1、什么是异常处理
是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)


2、异常与错误

错误(Error):严重的错误,无法通过修改代码来处理。如JVM运行失败、线程池出错导致JVM无法正确运行。 
异常(Exception):异常表示程序执行过程中出现的不正常的现象,可以通过修改代码来进行弥补。


3、异常的种类

a) 编译时异常:编译被检测的异常
b) 运行时异常:编译时不被检测的异常运行时异常


4、异常体系

a) Throwable
i. Error
ii. Exception
 1>. RuntimeException
     <1>、Throwable
  Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。
  两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。
  <2>、Error
  Error 是 Throwable 的子类,表示仅靠程序本身无法恢复的严重错误,用于指示合理的应用程序不应该试图捕获的严重问题。
在执行该方法期间,无需在方法中通过throws声明可能抛出但没有捕获的 Error 的任何子类,因为Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。
<3>、Exception
  Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常。
  <4>、RuntimeException
  RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过,这种异常可以通过改进代码实现来避免。
  
5、Java处理异常
[java] view plaincopy
1. try  
2. {  
3. /*需要检测的代码*/  
4. }  
5. catch(异常类 变量)  
6. {  
7. /*处理异常的代码*/  
8. }  
9. finally  
10. {  
11. /*一定执行的代码*/  
12. }  


6、throw 与throws的区别
throws放在函数上,后跟异常类,可以跟多个,用逗号隔开;
throw 放在函数内,后跟异常对象。


5, 关于单例设计模式的总结

1、什么是单例设计模式
单例设计模式就是解决一个类在内存中只有一个对象。
想要保证对象唯一:
(1)为了避免其他程序过多的建立该类对象,选控制其他程序建立该类对象
(2)为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象

(3)为了方便其他程序对自定义对象访问,可以对外提供一些访问方式


2、单例设计模式的种类
种类一:饿汉式
[java] view plaincopy
1. /** 
2. * 单例设计模式--饿汉式 
3. */  
4. class SingleHungry  
5. {  
6.    //将构造函数私有化  
7.    private SingleHungry(){};  
8.    //在类中创建一个本类的对象  
9.    private static SingleHungry s=new SingleHungry();  
10.    //提供一个方法可以获取到该对象  
11.    public static SingleHungry getInstance()  
12.    {  
13.        return s;  
14.    }  
15. }  


种类二:懒汉式
[java] view plaincopy
1. /** 
2. * 单例设计模式--懒汉式(对象的延迟加载) 
3. */  
4. public class SingleLazy {  
5.    //私有化对象s指向空  
6.    private static SingleLazy s=null;  
7.    //将构造函数私有化  
8.    private SingleLazy(){};  
9.    //提供一个方法获取到该类的对象  
10.    public static SingleLazy getInstance(){  
11.        //如果对象是空,建立一个对象  
12.        if(s==null)  
13.            s=new SingleLazy();  
14.        return s;  
15.    }  
16. }  

种类三:懒汉式的升级版
[java] view plaincopy
1. /** 
2. * 单例设计模式--懒汉式(对象的延迟加载)的升级版 
3. */  
4. public class SingleLazyImprove {  
5.    //私有化对象s指向空  
6.    private static SingleLazyImprove s=null;  
7.    //将构造函数私有化  
8.    private SingleLazyImprove(){};  
9.    //提供一个方法获取到该类的对象  
10.    public static  SingleLazyImprove getInstance()  
11.    {  
12.        //用双层判断来加锁  
13.        if(s==null)  
14.        {  
15.            synchronized(SingleLazyImprove.class)  
16.            {  
17.                if(s==null)  
18.                    s=new SingleLazyImprove();  
19.            }  
20.        }  
21.        return s;  
22.    }  
23. }  








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值