‘壹’ java 使用e.printStackTrace打印异常信息会减少内存吗
Java抛出异常的方法有很多,其中最常用的两个:
System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常,不过它和另外一个e.printStackTrace()方法不同。后者也是打印出异常,但是它还将显示出更深的调用信息。
比如说:
A extends ---> B extends ----> C
当在创建A的过程中出现问题了,我们抛出异常。
System.out.println(e),除了标准异常外,只打印at A 然后再向外层层输出。
e.printStackTrace(),除了标准异常外,打印
at C
at B
at A
.......再向外层调查。
在向外层调查的情况下,都一样。最后都会回到com.sun.midp.main.Main.main
‘贰’ 为什么java要把异常打印到堆栈
不是打印到堆栈,而是打印栈信息,因为程序执行的时候,最终还是要靠01二进制代码执行,运行在堆栈里面,所以出错或抛出异常时能被捕获到
‘叁’ java中如何获取throws抛出的异常,并且把异常打印到指定的jsp页面
比如你又一个方法叫a,调用了一个方法b(b方法throws了一个异常),那么在a里面使用try-catch捕获这个异常,在catch块里面,使用jsp的request,或者session将异常对象e.getMessage的内容存储到制定的变量里面(例如request.setAttribute("errorMessage",e.getMessage));
然后到页面使用EL表达式${errorMessage}取出来就好了。
‘肆’ java中怎么把发生的异常打印在web页面上
用try catch语句实现:
try{
//业务代码
}catch(Exceptione){
e.printStackTrace();//打印异常
thrownewException("WriteInputStreamError"+e.toString());//抛给客户端的异常
}