zoukankan      html  css  js  c++  java
  • 2020.7.27

    学习内容:

    1、在Java中如何进行异常处理

    (2)使用throws抛出异常

    声明抛弃异常是在一个方法声明中的throws字句中指明的

    [ 修饰符 ] 返回类型 方法名(参数1,参数2,...) throws 异常列表 { }

    throws 子句中同时可以指明多个异常,说明该方法将不对这些异常进行处理,而是声明抛弃他们

    (3)通过throw抛出异常

    手动抛弃异常对象是通过throw语句实现的,但可以抛弃的异常必须是Throwable 或其子类的实例

    形式: throw 异常名

    throw关键字主要用在try块中,用来说明已经发生的异常情况;throw关键字后面跟随一个异常对象,用来说明发出的异常类型

    注意:如果方法中用throw语句抛出了异常,那么在方法的头部必须用throws声明将要抛出的异常

    (4)自定义异常

    若要建立自己的异常类型,只要定义Exception的一个子类就可以了,子类不需要实际执行什么,它们在类型系统中的存在允许把它们当成异常使用

     

     例:自定义异常

    package day01;
    
    public class ZiDingYi {
        public static void main(String[] args) {
            ZiDingYi z= new ZiDingYi();
            try{
                z.add(2,3);
            }catch(MyException e) {
                e.printStackTrace();
            }
        }
        private void add(int a,int b) throws MyException{
            if(a==b) {
                throw new MyException("输入两个数相等");
            }
        }
    }
    class MyException extends Exception{
        public MyException(String mag) {
            super(mag);
        }
        public MyException() {
            super();
        }
        public MyException(String message,Throwable cause) {
            super(message,cause);
        }
        public MyException(Throwable cause) {
            super(cause);
        }
    }

    警告: serializable 类 MyException 未声明类型为 long 的静态终态

    2、用log4j记录异常日志信息

    log4j是Apache的一个开放源代码项目,它是一个日志操作包,通过使用log4j可以指定日志信息输出的目的地、控制每一条日志的输出格式,定义日志信息的级别,所有这些功能通过一个配置文件灵活进行配置

    在程序中日志通常记录程序的运行情况,如错误信息、系统管理员的登陆情况等

    log4j组成:

      log4j主要由三大组件组成。

      Logger: 决定什么日志信息应该被输出、什么日志信息应该被忽略。

      Appender: 指定日志信息应该输出到什么地方,这些地方可以是控制台、文件和网络设备.

      Layout: 指定日志信息的输出格式。

    一个Logger可以有多个Appender,也就是说,日志信息可以同时输出到多个设备上,每个Appender对应一种Layout,流程关系如图8-3所示。

    (1)Logger组件

    (a)Logger组件提供的方法

    Logger组件是log4j的核心组件,它代表了log4j 的日志记录器,它能够对日志信息进行分类筛选。它由org.apache.log4j.Logger类实现,Logger 类源代码如下。

    复制代码
    public class Logger {
    
    // Creation & retrieval methods:
    public static Logger getRootLogger() :
    public static Logger getLogger (String name) ;
    
    // printing methods:
    public void debug (Object message) ;
    public void info (0bject message) ;
    public void warn (Object message);
    public void error (object message) :
    public void fatal (object message) ;
    
    // generic printing method:
    public void log(Priority P,object message) ;
    复制代码

    (b)在配置文件中配置Logger组件
    可在log4j配置文件中配置自己的Logger组件,配置如下。

    log4j.logger.myLogger=WARN

    以上代码定义了一个Logger组件,名称为myLogger,日志级别为WARN.
    (c)日志级别种类
    日志的种类一共有五种,级别由高到低依次是fatal、error、 warm、 info. debug. 获得Logger实例后,用户可调用以下方法之-输出日志信息。 

    以上方法只有当它的级别大于或等于Logger组件配置的日志级别时才被调用。以前面大家配置的myLogger为例,它的日志级别为WARN,那么在程序中,它的warn(). error()、fatal()方法会被执行。对于log()方法,只有当它的参数Priority指定的日志级别大于或等于WARN时,它才会被执行。

    (2)Appender组件

    Appender组件决定将日志信息输出到什么地方。支持以下目的地。
        #控制台(Console)。
        #文件(File).
        #GUI组件(GUI component).
        #套接口服务器(Remote socket server).
        #NT的事件记录器(NT Event Logger).
        #UNIX Syslog守护进程(Remote UNIX Syslog daemon).
        一个Logger可同时对应多个Appender.
       下面的myLogger配置两个Appender:一个是file,另一个是console.

    log4j. logger.myAppender=WARN, file, console
    log4j. appender.file=org. apache.log4j. RollingFileAppender
    log4j. appender.file.File=log.txt
    log4j.apender.console=org. apache .1og4j.ConsoleAppender

    (3). Layout组件
         Layout组件决定日志输出格式,有以下几种类型。
        a. org.apache.log4j.HTMLLayout(以 HTML表格形式布局)。
        b.org.apache.log4j.PattermLayout(可 以灵活地指定布局模式)。
        c.org.apache.log4j.SimpleLayout(包含 日志信息的级别和信息字符串)。
        d. org.apache.log4j.TTCCLayout(包含 日志产生的时间、线程和类别等信息)。

    (4)log4j的基本用法

    导入log4j的jar包
    导入log4j的方式有两种:第-种直接使用命令行导入;第二种使用MyEclipse导入。.
       #命令行导入log4j.


       #使用MyEclipse导入.

    明天要学习的内容:

    文件操作、目录管理

  • 相关阅读:
    21世纪网络创业新生代中国海归的传承与开创圆桌论坛实录_网络营销_网赚猫 及时更新网络赚钱_网赚项目_兼职_网络营销等相关网赚资讯
    知方可补不足~利用LogParser将IIS日志插入到数据库
    WebApi系列~自主宿主HttpSelfHost的实现
    我心中的核心组件(可插拔的AOP)~第十五回 我的日志组件Logger.Core(策略,模版方法,工厂,单例等模式的使用)
    爱上MVC系列~前端验证与后端数据有效性验证
    第九回 Microsoft.Practices.Unity.Interception实现基于数据集的缓存(针对六,七,八讲的具体概念和配置的解说)
    struts2第一个程序的详解(配图)
    JavaScript中的对象(一)
    SqlServer操作远程数据库
    [leetcode]Binary Tree Inorder Traversal
  • 原文地址:https://www.cnblogs.com/ltw222/p/13395977.html
Copyright © 2011-2022 走看看