`

java中报错梳理总结

阅读更多

在写代码和调试的过程中,经常会遇到很多问题,对于这些问题的解决,我们很重要的一个依据就是报错信息。这是我们解决问题中很重要的一个切入点。

下面对我在java程序开发中遇到的一些报错做个总结:

1、NoClassDefFoundError

报错:

2014-08-18 10:32:33,871 ERROR [http-39060-Processor3] ProbeManager - Load probe core class: com.zznode.ngn.sa.psm.probe.ftp.mms.MmsMonthProbe from class path fail,cause: null
java.lang.NoClassDefFoundError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at com.zznode.ngn.pmp.node.mprobe.ProbeManager.addProbe(ProbeManager.java:220)
at com.zznode.ngn.pmp.node.mprobe.ProbeManageService.addProbe(ProbeManageService.java:97)

解决方案:

这个问题的原因一般是class文件的问题。

1、首先看下是不是类编译有没有报错,如果是这个问题就很容易解决了,将编译时的报错解决掉OK了。

    

2、然后看下是不是报错类中有对象类在运行时没有加载(这个原因很常见)。比如我这次错的原因就是在类MmsMonthProbe中我引用了CollectingLog类

	private void handInLog(Integer collectType, Integer collectResult,
								String message, Date measureTime,Date colTime) {
		CollectingLog  log = new CollectingLog(
									"MMSMonth业务采集",
									measureTime,
									colTime,
									collectResult,
									collectType,
									message,
									null,
									((familyNameAll != null && !"".equals(familyNameAll))
											?familyNameAll.substring(0,familyNameAll.length()-1)
													:"")
							);
		
		handIn(log); 
	}

 
但是我的jar包中没有该类,所以报错了


 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics