討論區快速選單
知識庫快速選單
軟體開發過程中有哪些資安漏洞? 討論區最近新進100則主題 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
關於java.lang.NullPointerException
更改我的閱讀文章字型大小
作者 : love007002(爆走笨魚)
[ 貼文 35 | 人氣 1891 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/13 上午 02:17:32
小弟是個初學者, 以前都只有再撰寫C語言, 最近想要玩ANDROID的部分, 因此開始學習JAVA, 但自己在撰寫一些簡單程式時, 編譯後出現
Exception in thread "main" java.lang.NullPointerException at exercise_ch07.Ex2_01.main,
我不知道問題出在哪裡, 又為何會有這樣的問題, 是否有人可以告訴我, 如何解決及原因??
謝謝!

public class Ex2_01 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動產生的方法 Stub

CTriangle objArr[] = new CTriangle[10];
int arr[] = new int[3];

for (int i = 0; i < objArr.length; i++) {
arr = makeThreeNum();
objArr[i].edge1 = arr[0];
objArr[i].edge2 = arr[1];
objArr[i].edge3 = arr[2];
}

for (int i = 0; i < objArr.length; i++) {
System.out.println("objArr[" + i + "]" + "\t" + objArr[i].edge1 + "\t" + objArr[i].edge2 + "\t" + objArr[i].edge3);
}
}

static public int[] makeThreeNum() {
int arr[] = new int[3];

arr[0] = (int) (Math.random() * 24 + 5);
arr[1] = (int) (Math.random() * 40 + 9);
arr[2] = (int) (Math.random() * 60 + 29);

return arr;
}

}

class CTriangle
{
public int edge1, edge2, edge3;

public CTriangle() {
edge1 = 3;
edge2 = 4;
edge3 = 5;
}

public CTriangle(int a, int b, int c) {
this();

if (isLegal(a, b, c)) {
edge1 = a;
edge2 = b;
edge3 = c;
}

}

private boolean isLegal (int a, int b, int c) {
if ((a <= b) && (b <= c)) {
if (((a + b) < c) && ((a + c) < b) && ((b + c) < a)) {
return true;
} else {
return false;
}
} else {
return false;
}
}

public boolean isRightAngled() {
if ((edge3 * edge3) == (edge1 * edge1) + (edge2 * edge2)) {
return true;
} else {
return false;
}
}
}
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4498 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/13 上午 10:06:30
http://stackoverflow.com/questions/6413290/java-lang-nullpointerexception
http://www.programmer-club.com.tw/ShowSameTitleN/java/9369.html
http://bbs.csdn.net/topics/60388760
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4498 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/13 下午 02:01:34
Exception in thread "main" java.lang.NullPointerException at exercise_ch07.Ex2_01.main
it seems that VM got a run time exception and it occurred in main thread . Basically, this exception should be a null pointer exception. that means your codes try to access a null pointer and causes an exception in run time.
For this exception , you should use a protection mechanism to handle it. the followings are some examples that teach you how to handle null pointer exception.

http://www.programmersheaven.com/mb/java/226304/226304/trying-to-catch-nullpointerexception/
http://www.javacodegeeks.com/2012/06/avoid-null-pointer-exception-in-java.html
http://en.wikibooks.org/wiki/Java_Programming/Throwing_and_Catching_Exceptions

and others about it , you may search them on google
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4498 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/13 下午 06:48:42
try to launch debug tools for tracking the issue
http://changyy.pixnet.net/blog/post/28985971-android-%E9%96%8B%E7%99%BC%E6%95%99%E5%AD%B8%E7%AD%86%E8%A8%98---%E4%BD%BF%E7%94%A8-ddms-%E5%92%8C-traceview-%E7%AD%86
http://developer.android.com/tools/debugging/ddms.html - the official DDMS site @android developer
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4498 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/13 下午 07:42:16
http://www.360doc.com/content/10/0427/12/155970_25103495.shtml
logcat
作者 : sflam(Raymond)討論區板主 Visual C++ .NET卓越專家VC++一代宗師新手入門優秀好手資訊類作業求救頂尖高手C++一代宗師貼文超過4000則
[ 貼文 4945 | 人氣 9172 | 評價 32290 | 評價/貼文 6.53 | 送出評價 142 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人love007002註記此篇回應為最佳解答 2013/4/13 下午 08:02:43
> CTriangle objArr[] = new CTriangle[10];

跟 C 及 C++ 語言不同, Java 的 new CTriangle[10] 並不會配置 10 個物件, 它所配置的是 10 個 reference (相等於 C 的指標), 每個 reference 都會自動初始化為 null, 每個 reference 你都必須另行配置:
  for (int i = 0; i < objArr.length; ++i) {
    objArr[i] = new CTriangle();
  }

這之後你才能用 objArr[i].

作者 : love007002(爆走笨魚)
[ 貼文 35 | 人氣 1891 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/13 下午 11:11:22
感謝各位的幫忙, 也告訴我一些debug技巧. 有時候小弟的直覺會變成以C的想法一樣, 因此會讓我完全不知道問題點是為什, 幸虧有你們的幫忙, 我已經解決了.
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4498 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/14 上午 09:38:34
http://docs.oracle.com/javase/tutorial/essential/exceptions/definition.html
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4498 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/14 上午 09:44:01
http://en.wikipedia.org/wiki/Exception_handling
 板主 : 風月
 > Java入門一般區 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Java入門一般區 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Java入門一般區
1 洋將 2410 
2 Aron 2130 
3 Aries 1510 
4 DEMO999 1310 
5 Ben 990 
6 ramb 620 
7 ozzy 570 
8 tand 460 
9 Huah 410 
10 vindy 400 
Java入門一般區
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625