⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiexception.java

📁 是离开的肌肤了卡机是离开的就富利卡及是了的开发及拉考试及的福利科技阿斯利康的肌肤莱卡及时的离开福建阿斯顿发
💻 JAVA
字号:
// ========================================================================// Copyright 1999-2005 Mort Bay Consulting Pty. Ltd.// ------------------------------------------------------------------------// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.// ========================================================================package org.mortbay.util;import java.io.PrintStream;import java.io.PrintWriter;import java.util.List;/* ------------------------------------------------------------ *//** Wraps multiple exceptions. * * Allows multiple exceptions to be thrown as a single exception. * * @author Greg Wilkins (gregw) */public class MultiException extends Exception{    private Object nested;    /* ------------------------------------------------------------ */    public MultiException()    {        super("Multiple exceptions");    }    /* ------------------------------------------------------------ */    public void add(Throwable e)    {        if (e instanceof MultiException)        {            MultiException me = (MultiException)e;            for (int i=0;i<LazyList.size(me.nested);i++)                nested=LazyList.add(nested,LazyList.get(me.nested,i));        }        else            nested=LazyList.add(nested,e);    }    /* ------------------------------------------------------------ */    public int size()    {        return LazyList.size(nested);    }        /* ------------------------------------------------------------ */    public List getThrowables()    {        return LazyList.getList(nested);    }        /* ------------------------------------------------------------ */    public Throwable getThrowable(int i)    {        return (Throwable) LazyList.get(nested,i);    }    /* ------------------------------------------------------------ */    /** Throw a multiexception.     * If this multi exception is empty then no action is taken. If it     * contains a single exception that is thrown, otherwise the this     * multi exception is thrown.      * @exception Exception      */    public void ifExceptionThrow()        throws Exception    {        switch (LazyList.size(nested))        {          case 0:              break;          case 1:              Throwable th=(Throwable)LazyList.get(nested,0);              if (th instanceof Error)                  throw (Error)th;              if (th instanceof Exception)                  throw (Exception)th;          default:              throw this;        }    }        /* ------------------------------------------------------------ */    /** Throw a Runtime exception.     * If this multi exception is empty then no action is taken. If it     * contains a single error or runtime exception that is thrown, otherwise the this     * multi exception is thrown, wrapped in a runtime exception.      * @exception Error If this exception contains exactly 1 {@link Error}      * @exception RuntimeException If this exception contains 1 {@link Throwable} but it is not an error,     *                             or it contains more than 1 {@link Throwable} of any type.     */    public void ifExceptionThrowRuntime()        throws Error    {        switch (LazyList.size(nested))        {          case 0:              break;          case 1:              Throwable th=(Throwable)LazyList.get(nested,0);              if (th instanceof Error)                  throw (Error)th;              else if (th instanceof RuntimeException)                  throw (RuntimeException)th;              else                  throw new RuntimeException(th);          default:              throw new RuntimeException(this);        }    }        /* ------------------------------------------------------------ */    /** Throw a multiexception.     * If this multi exception is empty then no action is taken. If it     * contains a any exceptions then this     * multi exception is thrown.      */    public void ifExceptionThrowMulti()        throws MultiException    {        if (LazyList.size(nested)>0)            throw this;    }    /* ------------------------------------------------------------ */    public String toString()    {        if (LazyList.size(nested)>0)            return "org.mortbay.util.MultiException"+                LazyList.getList(nested);        return "org.mortbay.util.MultiException[]";    }    /* ------------------------------------------------------------ */    public void printStackTrace()    {        super.printStackTrace();        for (int i=0;i<LazyList.size(nested);i++)            ((Throwable)LazyList.get(nested,i)).printStackTrace();    }       /* ------------------------------------------------------------------------------- */    /**     * @see java.lang.Throwable#printStackTrace(java.io.PrintStream)     */    public void printStackTrace(PrintStream out)    {        super.printStackTrace(out);        for (int i=0;i<LazyList.size(nested);i++)            ((Throwable)LazyList.get(nested,i)).printStackTrace(out);    }    /* ------------------------------------------------------------------------------- */    /**     * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter)     */    public void printStackTrace(PrintWriter out)    {        super.printStackTrace(out);        for (int i=0;i<LazyList.size(nested);i++)            ((Throwable)LazyList.get(nested,i)).printStackTrace(out);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -