Advertisement

javaoop——异常笔记(第五章)

阅读量:

第一节:异常概念

一、概念

1、异常:有异于常态,和正常情况不一样,有错误出现,阻止当前方法或作用域。

2、异常处理:将出现的异常提示给编程人员与用户,使原本将要中断的程序继续运行或者退出。并且能够保存数据和释放资源。

二、异常体系结构

1、所有异常都继承于Throwable类,其下有两大子类:

(1)Error类:错误,一般编程人员不太接触,如虚拟机错误、线程死锁。硬伤:使程序崩溃

(2)Exception类:异常,编码、环境、用户输入等问题,其子类主要有:

A:非检查异常(运行时异常RuntimeException):【由java虚拟机自动捕获】如空指针NullPointer、越界ArrayIndexOutofBounds、错误类型转换ClassCast、算数异常Arithmetic等。

B:检查异常CheckException:【需要手动添加捕获和处理语句】文件异常IO等。

——

——

第二节:异常处理

1、使用try-catch以及try-catch-finally语句块,来捕获或处理异常。

2、基本语法

try{

//一些可能会出现异常的代码

}catch(Exception子类 e){

//捕获异常,处理该异常的代码块

}catch(Exception e){

//处理该异常的代码块

e.printStackTrace();//打印堆栈信息

}finally{

//最终将要执行的一些代码

}

注意:

A:多重catch块的顺序,是从子类到父类

B:try里面变量的声明,一般都是放在上面的

C:System.exit(1);//结束程序,finally块不会执行

——

——

第三节:抛出异常

一、throws概念

1、是写在方法名和方法的参数表之后,在方法体之前,用它修饰的方法向调用者表明该方法可能会抛出某种类型的异常。

2、可以抛出一种或多种类型异常,每个类型的异常之间用逗号隔开。如果多个异常中有子夫异常关系可只抛父类

3、具体的方法体中可以调用一些会抛出异常的方法或者新抛出一个异常。

4、throw写在方法体内。

5、如果某个方法调用了抛出异常的方法,那么必须添加try catch语句去尝试捕获这种异常,或者添加声明,将异常抛出给更上一层的调用者进行处理。

6、可以自定义异常,基于Exception类或其子类。

二、Java中的异常抛出

1、 throw:将产生的异常抛出(动作),抛出一个异常对象。

2、throws:声明将要抛出何种类型的异常(异常类)

注意:其调用该方法者,需要对其进行异常处理,除非它再声明一个抛出异常。

总结:在方法内有地方有问题,就用throw抛出异常。抛出后,则这个方法,需要用throws声明这个异常。

3、示例:

public void 方法名(参数列表) throws 异常列表(可以多个,用“,”隔开) {

// 调用会抛出异常的方法或者:

throw new Exception();

}

例:

public void divide(int one, int two) throws Exception {

if(two == 0){

throw new Exception("两数相除,除数不能为0。。。");

}else {

System.out.println("两数相除,结果为:" + one / two);

}

}

异常的分类

**1、Error Error类代表了编译和系统的错误,不允许捕获;
2、Runtime Exception 运行时异常 它是指Java程序在运行时产生的由解释器引发的各种异常。 如:算数异常(如被0除)、下标异常(如数组越界) 空指针 等。
3、Exception
**

4、throw 用户自定义异常

log4j

为注释

复制代码
 log4j.rootLogger=debug,kongzhitai,wenjian,wenjian2

    
  
    
 log4j.appender.kongzhitai=org.apache.log4j.ConsoleAppender
    
 log4j.appender.kongzhitai.Target=System.out
    
 log4j.appender.kongzhitai.layout=org.apache.log4j.PatternLayout
    
 log4j.appender.kongzhitai.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%C:%M) %m%n
    
  
    
 log4j.appender.wenjian=org.apache.log4j.FileAppender    //将异常以文档发送到文件夹
    
  
    
 log4j.appender.wenjian.File=abc.log
    
 log4j.appender.wenjian.layout=org.apache.log4j.PatternLayout
    
 log4j.appender.wenjian.layout.ConversionPattern=%d{yyyy-M-d HH\:mm\:ss}%x[%5p](%C\:%M) %m%n
    
  
    
 log4j.appender.wenjian2=org.apache.log4j.FileAppender  //可以发送多个文件夹 和类型 
    
 log4j.appender.wenjian2.File=abc2.log
    
 log4j.appender.wenjian2.layout=org.apache.log4j.PatternLayout
    
 log4j.appender.wenjian2.layout.ConversionPattern=%d{yyyy-M-d HH\:mm\:ss}%x[%5p](%C\:%M) %m%n

全部评论 (0)

还没有任何评论哟~