exceptiontest.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 143 行

JAVA
143
字号
/* * @(#)ExceptionTest.java	1.14 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * General Public License version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * */import sun.misc.CVM;public class ExceptionTest {    static int sfoo = 3;    static final int sbar = 6;    static int sfoobar;    static Throwable clinitException;    static {	try {	    throw new MyException();	} catch (MyException e) {	    e.printStackTrace();	    clinitException = e;	}    }    public static void main(String argv[]) throws Exception {	clinitException.printStackTrace();	int a = 1;	RuntimeException e1 = new RuntimeException();	e1.printStackTrace();		try {	    sfoobar = recurse(20);	    //sfoobar = recurse(10000);	} catch (StackOverflowError e) {	    e.printStackTrace();	}		exc(1);	exc(2);	exc(3);	exc(4);	try {	    try {		try {		    exc3();		} catch ( RuntimeException e ) {		    e.printStackTrace();		    sfoobar = -2;		} finally {		    sfoobar = -3;		}	    } finally {		sfoobar = -4;	    }	} catch ( Throwable e ) {	    e.printStackTrace();	}	try {	    try {		if (a == 1) {		    throw(new RuntimeException());		} else if (a == 2) {		    throw(new Exception());		} else if (a == 3) {		    throw(new Throwable());		}	    } catch ( RuntimeException e ) {		e.printStackTrace();		a = 2;	    } catch ( Exception e ) {		e.printStackTrace();		a = 3;	    }	} catch ( Throwable e ) {	    e.printStackTrace();	    a = 1;	}    }        static int exc(int a) {	try {	    if (a == 1) {		throw(new RuntimeException());	    } else if (a == 2) {		throw(new Exception());	    } else if (a == 3) {		throw(new Throwable());	    }	} catch ( RuntimeException e ) {	    e.printStackTrace();	    return -1;	} catch ( Exception e ) {	    e.printStackTrace();	    return -2;	} catch ( Throwable e ) {	    e.printStackTrace();	    return -3;	}	return -4;    }            static void exc3() throws Exception {	sfoo ++;	if (sfoo > 5) {	    throw(new Exception());	}	else	    exc3();    }        static int recurse(int count) {	if (count > 0)	    return count + recurse(count - 1);	return 0;    }}class MyException extends Exception {    public MyException() {	super();	printStackTrace();    }}

⌨️ 快捷键说明

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