throwable.html
来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 742 行 · 第 1/3 页
HTML
742 行
at MyClass.crunch(MyClass.java:6) at MyClass.main(MyClass.java:3) </pre></blockquote>本示例通过运行以下程序生成: <pre> class MyClass { public static void main(String[] args) { crunch(null); } static void crunch(int[] a) { mash(a); } static void mash(int[] b) { System.out.println(b[0]); } } </pre>对于带初始化非空 cause 的 throwable 的追踪,通常应该包括 cause 的追踪。此信息的格式取决于实现,但以下示例是最常见的: <pre> HighLevelException: MidLevelException: LowLevelException at Junk.a(Junk.java:13) at Junk.main(Junk.java:4) Caused by: MidLevelException: LowLevelException at Junk.c(Junk.java:23) at Junk.b(Junk.java:17) at Junk.a(Junk.java:11) ... 1 more Caused by: LowLevelException at Junk.e(Junk.java:30) at Junk.d(Junk.java:27) at Junk.c(Junk.java:21) ... 3 more </pre>注意包含字符 <tt>"..."</tt> 的行。这些行指示此异常的椎栈跟踪的其余部分是从“终止”异常(由此异常引起的异常)的堆栈跟踪底部算起的指定数量帧。这种简写形式可以大大缩短通常情况下的输出长度,通常情况下抛出经过包装的异常所采用的方法与捕获“作为 cause 的异常”所采用的方法相同。上述示例通过运行以下程序生成: <pre> public class Junk { public static void main(String args[]) { try { a(); } catch(HighLevelException e) { e.printStackTrace(); } } static void a() throws HighLevelException { try { b(); } catch(MidLevelException e) { throw new HighLevelException(e); } } static void b() throws MidLevelException { c(); } static void c() throws MidLevelException { try { d(); } catch(LowLevelException e) { throw new MidLevelException(e); } } static void d() throws LowLevelException { e(); } static void e() throws LowLevelException { throw new LowLevelException(); } } class HighLevelException extends Exception { HighLevelException(Throwable cause) { super(cause); } } class MidLevelException extends Exception { MidLevelException(Throwable cause) { super(cause); } } class LowLevelException extends Exception { } </pre><P><DD><DL></DL></DD><DD><DL></DL></DD></DL><HR><A NAME="printStackTrace(java.io.PrintStream)"><!-- --></A><H3>printStackTrace</H3><PRE>public void <B>printStackTrace</B>(java.io.PrintStream s)</PRE><DL><DD>将此 throwable 及其追踪输出到指定的输出流。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>s</CODE> - 用于输出的 <code>PrintStream</code></DL></DD></DL><HR><A NAME="printStackTrace(java.io.PrintWriter)"><!-- --></A><H3>printStackTrace</H3><PRE>public void <B>printStackTrace</B>(java.io.PrintWriter s)</PRE><DL><DD>将此 throwable 及其追踪输出到指定的 PrintWriter。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>s</CODE> - 用于输出的 <code>PrintWriter</code><DT><B>从以下版本开始:</B></DT> <DD>JDK1.1</DD></DL></DD></DL><HR><A NAME="fillInStackTrace()"><!-- --></A><H3>fillInStackTrace</H3><PRE>public <A HREF="Throwable.html" title="java.lang 中的类">Throwable</A> <B>fillInStackTrace</B>()</PRE><DL><DD>记录异常堆栈跟踪。此方法在此 <code>Throwable</code> 对象中记录与当前线程堆栈帧的当前状态有关的信息。<P><DD><DL></DL></DD><DD><DL><DT><B>返回:</B><DD>对此 <code>Throwable</code> 实例的引用。<DT><B>另请参见:</B><DD><A HREF="Throwable.html#printStackTrace()"><CODE>printStackTrace()</CODE></A></DL></DD></DL><HR><A NAME="getStackTrace()"><!-- --></A><H3>getStackTrace</H3><PRE>public <A HREF="StackTraceElement.html" title="java.lang 中的类">StackTraceElement</A>[] <B>getStackTrace</B>()</PRE><DL><DD>提供编程访问由 <A HREF="Throwable.html#printStackTrace()"><CODE>printStackTrace()</CODE></A> 输出的堆栈跟踪信息。返回堆栈跟踪元素的数组,每个元素表示一个堆栈帧。数组的第零个元素(假定数据的长度为非零)表示堆栈顶部,它是序列中最后的方法调用。通常,这是创建和抛出该 throwable 的地方。数组的最后元素(假定数据的长度为非零)表示堆栈底部,它是序列中第一个方法调用。<p>某些虚拟机在某些情况下可能会省略堆栈跟踪中的一个或多个堆栈帧。在极端情况下,没有该 throwable 堆栈跟踪信息的虚拟机可以从该方法返回一个零长度数组。一般说来,对于由 <tt>printStackTrace</tt> 输出的每个帧,此方法返回的数组都将包含一个对应的元素。<P><DD><DL></DL></DD><DD><DL><DT><B>返回:</B><DD>堆栈跟踪元素的数组,表示与此 throwable 相关的堆栈跟踪。<DT><B>从以下版本开始:</B></DT> <DD>1.4</DD></DL></DD></DL><HR><A NAME="setStackTrace(java.lang.StackTraceElement[])"><!-- --></A><H3>setStackTrace</H3><PRE>public void <B>setStackTrace</B>(<A HREF="StackTraceElement.html" title="java.lang 中的类">StackTraceElement</A>[] stackTrace)</PRE><DL><DD>设置将由 <A HREF="Throwable.html#getStackTrace()"><CODE>getStackTrace()</CODE></A> 返回,并由 <A HREF="Throwable.html#printStackTrace()"><CODE>printStackTrace()</CODE></A> 和相关方法输出的堆栈跟踪元素。此方法设计用于 RPC 框架和其他高级系统,允许客户端重写默认堆栈跟踪,这些默认堆栈跟踪要么在构造 throwable 时由 <A HREF="Throwable.html#fillInStackTrace()"><CODE>fillInStackTrace()</CODE></A> 生成,要么在从序列化流读取 throwable 时反序列化。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>stackTrace</CODE> - 要与此 <code>Throwable</code> 关联的堆栈跟踪元素。指定的数组由此调用复制;在方法调用返回后,指定数组中的改变将不会对此 <code>Throwable</code> 的堆栈跟踪产生影响。<DT><B>抛出:</B><DD><CODE><A HREF="NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 <code>stackTrace</code> 为 <code>null</code>,或者如果 <code>stackTrace</code> 中的任何元素为 <code>null</code><DT><B>从以下版本开始:</B></DT> <DD>1.4</DD></DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>类</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Throwable.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="ThreadLocal.html" title="java.lang 中的类"><B>上一个类</B></A> <A HREF="TypeNotPresentException.html" title="java.lang 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../index.html@java_2Flang_2FThrowable.html" target="_top"><B>框架</B></A> <A HREF="Throwable.html" target="_top"><B>无框架</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../allclasses-noframe.html"><B>所有类</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 摘要: 嵌套 | 字段 | <A HREF="#constructor_summary">构造方法</A> | <A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息: 字段 | <A HREF="#constructor_detail">构造方法</A> | <A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="../../../../../../../../java.sun.com/cgi-bin/bugreport.cgi">提交错误或意见</a><br>有关更多的 API 参考资料和开发人员文档,请参阅 <a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/devdocs-vs-specs.html">Java 2 SDK SE 开发人员文档</a>。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。 <p>版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守<a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/license.html">许可证条款</a>。另请参阅<a href="../../../../../../../../java.sun.com/docs/redist.html">文档重新分发政策</a>。</font></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?