Java异常如何分析在哪里产生的?

问题描述

现在项目代码不算大,但是逻辑挺复杂的。最近看线上日志,发现tomcat中出现了大量的空指针异常,但是很奇怪。只是简单的打出了NullPointerException,没有详细的堆栈信息,可能是因为某块代码没做异常保护。导致走这块流程的请求全都失效了。。但是有什么具体的方法找到是在哪里抛出的异常吗?有没有好的方法???手动的话,完全无法下手==希望各位Java大牛指教一下。。。。

解决方案

解决方案二:
如果没有堆栈,就没有好办法了。要是程序有写其它日志的,看看其它日志里面出错前后的内容,要是什么都没有只有NullPointerException的话,那么看看能不能根据错误发送的时间回忆起做的事情。要是连时间都没有的话,只好自己在界面上东摸摸西摸摸,后台不停的看日志,看什么时候刷出错误来了。
解决方案三:
先确认下是怎样方式输出的,log4j,systemoutprint,orothers然后,工程中代码searching吧。。。。。。关键字比如(System.out.println(e.getMessage())),看运气吧想不出好办法
解决方案四:
完全不知道啊。。。。log4j是有格式的,应该就是没做保护,直接系统级别抛出的,然后这次请求就废了。。。。
解决方案五:
项目上线是不允许存在System.out.println的,你搜索下吧,顺便都干掉
解决方案六:
嗯,System.out.println这个肯定是没有的。我的问题是有没有办法能找出抛出空指针异常的代码块?
解决方案七:
膜拜大牛飘过
解决方案八:
狠一点的办法是看看有没有办法找一个统一的入口,想办法把堆栈打出来。。。实在不行,比如把struts的代码重编一下,在action的基类里把异常catch掉。。。当然,你出现这样的情况,可能是所有的异常已经被catch掉,只留log的结果,这样,你只有慢慢的找catch块,加上stacktrace了。
解决方案九:
该回复于2014-09-22 08:47:49被版主删除

时间: 2024-10-06 09:57:48

Java异常如何分析在哪里产生的?的相关文章

java异常机制分析_java

本文实例分析了Java的异常机制,分享给大家供大家参考.相信有助于大家提高大家Java程序异常处理能力.具体分析如下: 众所周知,java中的异常(Exception)机制很重要,程序难免会出错,异常机制可以捕获程序中的错误,用来提高程序的稳定性和健壮性. java中的异常分为Checked Exception(非Runtime Exception)和UnChecked Exception(Runtime Exception),所有的异常类都直接或间接的继承Exception.Exception

java异常与错误处理基本知识_java

异常与错误:异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它.Java中使用异常类来表示异常,不同的异常类代表了不同的异常.但是在Java中所有的异常都有一个基类,叫做Exception.错误:它指的是一个合理的应用程序不能截获的严重的问题.大多数都是反常的情况.错误是VM的一个故障(虽然它可以是任何系统级的服务).所以,

Android Force Close 出现的异常原因分析及解决方法_Android

一.原因: forceclose,意为强行关闭,当前应用程序发生了冲突. NullPointExection(空指针),IndexOutOfBoundsException(下标越界),就连Android API使用的顺序错误也可能导致(比如setContentView()之前进行了findViewById()操作)等等一系列未捕获异常 二.如何避免 如何避免弹出Force Close窗口 ,可以实现Thread.UncaughtExceptionHandler接口的uncaughtExcepti

java异常——RuntimeException和User Define Exception

1.RuntimeException public class RuntimeException { public static void main(String[] args) { // TODO Auto-generated method stub String str="123"; int temp=Integer.parseInt(str); System.out.println(temp*temp); } } 查看parseInt方法的源代码如下: public static

java异常的基本理解

java异常的基本理解 代码: package kun.exception; public class test { public static void main(String arg[]) { try{ myExceptoin(3); myExceptoin(4); myExceptoin(1); } catch(Exception e) { System.out.println(e.getMessage()); } } //如果该方法可能抛出一个异常,就要在定义方法的时候使用throws声

Java异常处理实例分析_java

本文实例讲述了Java异常处理的用法.分享给大家供大家参考.具体分析如下: Java的异常处理机制可以帮助我们避开或者处理程序可能发生的错误,从而使得程序在遇到一些可恢复的错误的时候不会意外终止,而是去处理这些错误,也使得我们在写程序的时候不必写大量的代码来检查错误情况,增强了代码的可读性和逻辑性.在Java中,异常代表一个错误的实体对象. 异常可分为两类:一类是严重错误,如硬件错误.内存不足等,它们对应着java.lang包下的Error类及其子类.通常这类错误程序自身是无法恢复的,需要中断程

Java 异常设计最佳实践

关于异常 在讲Java异常实践之前,先理解一下什么是异常.到底什么才算是异常呢?其实异常可以看做在我们编程过程中遇到的一些意外情况,当出现这些意外情况时我们无法继续进程正常的逻辑处理,此时我们就可以抛出一个异常. 广义的讲,抛出异常分三种不同的情况: 编程错误导致的异常 :在这个类别里,异常的出现是由于代码的错误(譬如NullPointerException.IllegalArgumentException.IndexOutOfBoundsException ).代码通常对编程错误没有什么对策,

浅谈java异常链与异常丢失_java

1.在java的构造方法中提供了 异常链.. 也就是我们可以通过构造方法不断的将 异常串联成一个异常链...   之所以需要异常连,是因为处于代码的可理解性,以及阅读和程序的可维护性...  我们知道我们每抛出一个异常都需要进行try catch ...那么岂不是代码很臃肿... 我们如果可以将异常串联成一个异常连,然后我们只捕获我们的包装 异常,我们知道 RuntimeException 以及其派生类可以不进行try catch 而被jvm自动捕获并处理.. 当然了我们可以自己定义自己的异常类

Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析_Android

        在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的源代码.细心的读者会发现,这几篇文章分析的Binder接口都是基于C/C++语言来实现的,但是我们在编写应用程序都是基于Java语言的,那么,我们如何使用Java语言来使用系统的Binder机制来进行进程间通信呢?这就是本文要介绍的Android系统应用程序框架层的用Java语言来实现的Binder接口了.        熟悉Android系统