本文目录
- printstacktrace怎么用的
- java e.printStackTrace() 什么意思呢
- 如何获取e.printStackTrace的内容
- printstacktrace什么意思
- 如何 把 printStackTrace转换成字符串
- throw new RuntimeException(e)与e.printStackTrace( )有什么区别
- e.printStackTrace() ; 是什么意思
- 如何利用printStackTrace()把异常输出到文本
- printStackTrace会中断当前线程吗
printstacktrace怎么用的
不用重写,public void printStackTrace(PrintWriter s),Java本来有这个方法。源代码如下:已测试成功import java.io.*;public class ThrowableTest extends FileNotFoundException { public static void main(String argv) { try { FileInputStream f = new FileInputStream(“D:\\test.txt“); } catch (FileNotFoundException e) { try { PrintWriter p = new PrintWriter(new FileOutputStream(“D:\\errors.txt“)); p.println(“=== toString() ===“); p.println(e.toString()+“\n“); p.println(“=== getLocalizedMessage() ===“); p.println(e.getLocalizedMessage()); p.println(“=== getMessage() ===\n“); p.println(e.getMessage()); p.println(“=== printStackTrace() ===“); e.printStackTrace(p); p.flush(); } catch (IOException e1) { e1.printStackTrace(); } } }}
java e.printStackTrace() 什么意思呢
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。用在try{ BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); String inputLine=input.readline(); int i=Integer.parseInt(inputLine).intValue(); } catch(Exception e){ e.printStackTrace() ; }当执行捕获到异常,就会执行catch中的语句求采纳
如何获取e.printStackTrace的内容
e.printStackTrace() ,}当try语句中出现异常是时.会执行catch中的语句.java运行时系统会自动将catch括号中的Exception e 初始化.也就是实例化Exception类型的对象.e是此对象引用名称.然后e(引用)会自动调用Exception类中指定的方法.也就出现了e....
printstacktrace什么意思
深层次的输出异常调用的流程。比方说最终显示的是个NullPointException,用 e.printStackTrace() 就可以输出整个调用流程,比方说是 main 方法调用了某个类,这个类又初始化了一个值,然后再××××的,最后到出错这行代码抛出个异常。
如何 把 printStackTrace转换成字符串
建议自定义一个总的Exception Java code public abstract class GoodsException extends Exception{ /** * */ private static final long serialVersionUID = 1L; public GoodsException(){ super(); } public GoodsException(String message){ super(message); } public GoodsException(Throwable cause){ super(cause); } public GoodsException(String message, Throwable cause){ super(message, cause); } } 在继承定义详细Exception Java code public class DpulicationGoodsException extends GoodsException { /** * */ private static final long serialVersionUID = 1L; public DpulicationGoodsException(){ super(); } public DpulicationGoodsException(String message){ super(message); } public DpulicationGoodsException(Throwable cause){ super(cause); } public DpulicationGoodsException(String message, Throwable cause){ super(message, cause); } } 利用多态捕获总的catch(GoodsException e){ err.println(e.getMessage()); }
throw new RuntimeException(e)与e.printStackTrace( )有什么区别
e.printStackTrace( )是打印异常栈信息,而throw new RuntimeException(e)是把异常包在一个运行时异常中抛出。我们常看见这种写法try{....}catch(Exception e){e.printStackTrace( );throw new RuntimeException(e);}这是处理没法进一步处理的异常的一般做法。try块中出现了一个异常,它被catch住了,我们首先要在标准输出上打印出异常但是如果没有throw这句,这个错误就静悄悄地被catch块吃掉了,程序会继续运行。可这个时候很可能你的程序的状态已经不对了,继续下去也没有什么意义,所以应该继续抛出这个异常。你当然可以写throw e;,但是这个e是一般的异常,如果这样抛出的话,你得在这个函数头上用throws来声明,比如:public void abc() throws Exception然后调用这个函数的函数也还得这么干,所以一般的处理是把e包装成运行时异常:new RuntimeException(e),这样就不需要在函数头声明了。但这只是一般的处理方法,在实际程序中不可不顾实际情况和需求生搬硬套。
e.printStackTrace() ; 是什么意思
catch(Exception e){e.printStackTrace() ;} 当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)
如何利用printStackTrace()把异常输出到文本
不用重写,public void printStackTrace(PrintWriter s),Java本来有这个方法。
源代码如下:已测试成功
import java.io.*;
public class ThrowableTest extends FileNotFoundException {
public static void main(String argv) {
try {
FileInputStream f = new FileInputStream(“D:\\test.txt“);
} catch (FileNotFoundException e) {
try {
PrintWriter p = new PrintWriter(new FileOutputStream(“D:\\errors.txt“));
p.println(“=== toString() ===“);
p.println(e.toString()+“\n“);
p.println(“=== getLocalizedMessage() ===“);
p.println(e.getLocalizedMessage());
p.println(“=== getMessage() ===\n“);
p.println(e.getMessage());
p.println(“=== printStackTrace() ===“);
e.printStackTrace(p);
p.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
printStackTrace会中断当前线程吗
printStackTrace只是打印堆栈信息,你说看到的线程退出时非正常退出,如果出现异常但是是你控制范围之内的,线程是不会退出的。printStackTrace跟线程退出一毛钱关系没有。