解決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 {