עבור לתוכן

שגיאה בזמן ריצה ב-JAVA

Featured Replies

פורסם

שלום רב !!

בניתי תוכנית , ביצעתי קומפילציה (ללא שגיאות) וכאשר רציתי להריץ את התוכנית הופיע לי השגיאה הבאה בחלון פלט המסך:


Exception in thread "main" java.lang.NullPointerException
at World.clearNeighborCounts(World.java:56)
at Living.computeNeighbors(Living.java:36)
at Empty.next(Empty.java:19)
at World.update(World.java:36)
at RunPredatorPrey.main(RunPredatorPrey.java:11)

מה השגיאה ?

כיצד פותרים ומתקנים אותה ?

פורסם

אתה ניגש למשתנה שלא שמת בו אובייקט.

אתה צריך להשתמש ב- new ע"מ ליצור את האובייקט, ולגשת אליו.

פורסם
  • מחבר

אתה ניגש למשתנה שלא שמת בו אובייקט.

אתה צריך להשתמש ב- new ע"מ ליצור את האובייקט, ולגשת אליו.

אני ניגש לאובייקט שקיים כבר אבל בכל זאת הוא מודיע לי על זה...

הינה אחד הקודים אשר הוא מראה עליהם את השגיאה :


public void clearNeighborCounts()
{
int size=this.size;
for(int row=0;row<size;row++)
for(int col=0;col<size;col++)
{
this.getCell(row,col).getCount().setCounter(0);
this.getCell(row,col).getCount().setCounter(0);
this.getCell(row,col).getCount().setCounter(0);
this.getCell(row,col).getCount().setCounter(0);
}
}

פורסם

תוודא שאין לך באמת nullים בקוד.

תוודא שהקריאות ל-getCell לא מחזירות לך null, ושהקריאות ל-getCount לא מחזירות לך null.

שים לב שהוא גם אומר לך את השורה (56).

פורסם

הוא רושם לך בדיוק את השורה שיש בה את הבעיה, תסתכל שבכל הריצות האלו המשתנים בשורה הזו מאותחלים, ואם אתה עדיין מסתבך, פשוט תריץ בדיבאגר ותשים נקודת עצירה לפני השורה הזו.

פורסם
  • מחבר

הופיע לי גם בעיה נוספת :


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at World.eden(World.java:15)
at RunPredatorPrey.main(RunPredatorPrey.java:7)

מה הכוונה במספר 8 שהוא מראה ?

מה הבעיה ?

איך פותרים אותה ?

פורסם
  • מחבר

אני מתקן שגיאה ונוצרת לי שגיאה אחרת חדשה...

שגיאה נוספת :


Exception in thread "main" java.lang.NullPointerException
at World.update(World.java:23)
at RunPredatorPrey.main(RunPredatorPrey.java:16)

הקוד :


public void update(World world)
{
int size=this.size;
for(int i=1;i<=size;i++)
for(int j=1;j<=size;j++)
if(this.getCell(i,j).next(this)!= null)
world.setCell(this.getCell(i,j).next(this),i,j);
else {
System.out.println("There Is No Cell..");
}
}

השורה עליה מצביעה השגיאה :


if(this.getCell(i,j).next(this)!= null)

מה הבעיה וכיצד מתקנים ופותרים אותה ?

פורסם
  • מחבר

בדקת אם getCell מחזיר null?

כן , הוא מצביע על שורת הבדיקה בה יש בעיה...

פורסם
  • מחבר

בדקתי..אין סיבה שהיא תחזיר NULL משום שכל התאים במערך מאותחלים ויש בהם עצמים..........

פורסם

הפונקציה getCell היא פונקציה שכתבת בעצמך?

אם כן, אז תדבג אותה ותראה איפה היא מחזירה null.

אם לא, אז תמצא את התיעוד שלה ותראה מתי היא מחזירה null.

פורסם

תתחיל ללמוד איך להשתמש ב debugger של אקליפס.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים