解决java异常的方法:
1.首先要把异常打印处理(有时有人会直接catch,然后不打印任何日志)
2.然后分析使用的java api,自己是否熟悉,如果不熟悉,看看java 源码有什么注释可以帮助你来分析问题的原因
3.上网搜资料(很多人很多时候上来就去网上搜,这种做法不可取,甚至搜了半天也没有解决问题,应该先看源码注释来分析)
比如,
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
你是看不出什么的,但是看到ExecutionException注释,你就知道怎么做了(使用getCause来inspect线程运行的时候哪里错了)
/**
* Exception thrown when attempting to retrieve the result of a task
* that aborted by throwing an exception. This exception can be
* inspected using the {@link #getCause()} method.
*
* @see Future
* @since 1.5
* @author Doug Lea
*/
public class ExecutionException extends Exception {