Exception abfangen

Status
Nicht offen für weitere Antworten.

Oni

Top Contributor
mein problem ich bekomme die fehlermeldung nicht angezeigt stattdessen steht das in der console:

Code:
java.lang.NullPointerException
        at Telefonbuch.paint(Telefonbuch.java:180)
        at sun.awt.RepaintArea.paint(Unknown Source)
        at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

so sieht mein code aus.

Code:
  if(go == 1)
          	{
     		while((! verzeichnis[s].nameN.equals(gesuchtN)) && (s < verzeichnis.length))
                    s++;
                    	if((s == verzeichnis.length) && (! verzeichnis[s].nameN.equals(gesuchtN)))
          				anzeigen.setText("Name nicht gefunden");
                    	if((s <= verzeichnis.length) && (verzeichnis[s].nameN.equals(gesuchtN)))
                    		anzeigen.setText("Vorname: " + verzeichnis[s].nameV + "\n" + "Nachname: " + verzeichnis[s].nameN + "\n"
               			+ "Telefonnummer: " + verzeichnis[s].festNr + "\n" + "Handynummer: " + verzeichnis[s].mobilNr);
              }

das beispiel aus meinem buch sieht so aus. funktioniert aber auch nicht. ENDE ist auch nirgends sonst im code.

Code:
if(go == 1)
          	{
     		while((! verzeichnis[s2].nameV.equals(gesuchtV)) && (! verzeichnis[s2].nameV.equals("ENDE")))
     			s2++;
          		if(verzeichnis[s2].nameV.equals("ENDE"))
          			anzeigen.setText("Name nicht gefunden");
	     		else
          			anzeigen.setText("Vorname: " + verzeichnis[s2].nameV + "\n" + "Nachname: " + verzeichnis[s2].nameN + "\n"
               		+ "Telefonnummer: " + verzeichnis[s2].festNr + "\n" + "Handynummer: " + verzeichnis[s2].mobilNr);
               }
 

Oni

Top Contributor
in dem Array habe ich namen und telenummern gespeichert.
wenn ich einen namen eingebe den es im array gibt funktioniert es. dann wir der name samt telenr in einer textarea angezeigt.
das funktioniert.

aber wenn es denn namen nicht gibt, kommt keine fehlermeldung
 

Oni

Top Contributor
Code:
   if(go == 1)
          	{
     		while((! verzeichnis[s].nameN.equals(gesuchtN)) && (s < verzeichnis.length))   // DAS IST ZEILE 180 
                    s++;
                         if((s == verzeichnis.length) && (! verzeichnis[s].nameN.equals(gesuchtN)))
          				anzeigen.setText("Name nicht gefunden");
                         if((s <= verzeichnis.length) && (verzeichnis[s].nameN.equals(gesuchtN)))
                    		anzeigen.setText("Vorname: " + verzeichnis[s].nameV + "\n" + "Nachname: " + verzeichnis[s].nameN + "\n"
               			+ "Telefonnummer: " + verzeichnis[s].festNr + "\n" + "Handynummer: " + verzeichnis[s].mobilNr);

              }
 

meez

Top Contributor
Hau mal in den if noch das rein:
Code:
verzeichnis[s].nameN != null
 

meez

Top Contributor
In der while Schleife natürlich auch noch...
Halt überall, wo du ein equals hast...
 
B

bygones

Gast
wenn das 180 ist
Code:
verzeichnis[s].nameN.equals(gesuchtN)) && (s < verzeichnis.length
dann gibts drei möglichkeiten:

  • verzeichnis ist null
  • verzeichnis ist null

  • verzeichnis.nameN ist null


lass dir mal die drei möglichkeitn ausgeben - ansonsten code posten

PS: equals am besten immer nach dem Prinzip:
Code:
"derString".equals(wortZuUerpruefen)
schreiben, da sonst null exception geworfen werden könnte ;)
 

Oni

Top Contributor
Code:
import java.awt.*;
import java.awt.event.*;

public class Telefonbuch extends Frame implements ActionListener, WindowListener
{
	private int x = 20;
     private Telefonbuch tele;
     private Button suchen;
     private MenuItem close, change;
     private String nameN;
     private String nameV;
     private String festNr;
     private String mobilNr;
     private String gesuchtN;
     private String gesuchtV;
     private TextArea anzeigen;
     private TextField suchEingabeN;
     private TextField suchEingabeV;
     private int go = 0, go2 = 0, s = 0, s2 = 0;

	public static void main(String[] args)
     	{
          Frame f = new Telefonbuch();

          f.setVisible(true);
          f.setSize(400, 400);
          f.setLocation(50, 50);
          }

     public Telefonbuch()
     	{
          setTitle("Telefonbuch");
          setLayout(null);
/* MenuBar */
          MenuBar b1 = new MenuBar();
/* Menu 1 */
          Menu m1 = new Menu("Datei");

          close = new MenuItem("Schliessen");
          m1.add(close);
          close.addActionListener(this);

          b1.add(m1);
          setMenuBar(b1);

          Label l1 = new Label("Nachname:");
		add(l1);
          l1.setBounds(10, 60, 70, 25);
          suchEingabeN = new TextField();
          add(suchEingabeN);
          suchEingabeN.setBounds(80, 60, 100, 25);
          suchEingabeN.addActionListener(this);

          Label l2 = new Label("Vorname:");
		add(l2);
          l2.setBounds(10, 90, 70, 25);
          suchEingabeV = new TextField();
          add(suchEingabeV);
          suchEingabeV.setBounds(80, 90, 100, 25);
          suchEingabeV.addActionListener(this);

          suchen = new Button("Suchen");
          add(suchen);
          suchen.setBounds(190, 60, 80, 25);
          suchen.addActionListener(this);

          anzeigen = new TextArea();
          add(anzeigen);
          anzeigen.setBounds(50, 130, 280, 100);
          this.addWindowListener(this);
          }


     public void windowClosing(WindowEvent event)
     	{
          System.exit(0);
          }

     public void windowIconified(WindowEvent event)
     	{
          }

     public void windowOpened(WindowEvent event)
     	{
          }

     public void windowClosed(WindowEvent event)
     	{
          }

     public void windowDeiconified(WindowEvent event)
     	{
          }

     public void windowActivated(WindowEvent event)
     	{
          }

     public void windowDeactivated(WindowEvent event)
     	{
          }


     public void actionPerformed(ActionEvent event)
     	{
          if(event.getSource() == suchen)
          	{
               go = 0;
               go2 = 0;

               gesuchtN = suchEingabeN.getText();
               if(gesuchtN.equals(""))
               	{
                    }
               else
               	{
                    go = 1;
                    }

               gesuchtV = suchEingabeV.getText();
               if(gesuchtV.equals(""))
               	{
                    }
               else
               	{
                    go2 = 1;
                    }

               s = 0;
               s2 = 0;
               suchEingabeV.setText("");
               suchEingabeN.setText("");
               anzeigen.setText("");
               }
          if(event.getSource() == close)
          	{
               System.exit(0);
               }
          repaint();
          }


     public void paint(Graphics g)
		{
          Telefonbuch[] verzeichnis = new Telefonbuch[150];
     	verzeichnis[0] = new Telefonbuch();
          verzeichnis[1] = new Telefonbuch();
          verzeichnis[2] = new Telefonbuch();
          verzeichnis[3] = new Telefonbuch();

          verzeichnis[0].nameN = "Test1";
     	verzeichnis[0].nameV = "Test2";
     	verzeichnis[0].festNr = "06555/XXXXXX";
     	verzeichnis[0].mobilNr = "0173/XXXXXXX";

          verzeichnis[1].nameN = "Test2";
     	verzeichnis[1].nameV = "test2";
     	verzeichnis[1].festNr = "06555/XXXXXX";
     	verzeichnis[1].mobilNr = "0173/XXXXXXX";

          verzeichnis[2].nameN = "Test3";
     	verzeichnis[2].nameV = "test3";
     	verzeichnis[2].festNr = "06555/XXXXXX";
     	verzeichnis[2].mobilNr = "0173/XXXXXXX";

          verzeichnis[3].nameN = "Test4";
     	verzeichnis[3].nameV = "test4";
     	verzeichnis[3].festNr = "06555/XXXXXX";
     	verzeichnis[3].mobilNr = "0173/XXXXXXX";

          if((go == 1))
          	{
     		while((! verzeichnis[s].nameN.equals(gesuchtN)) && (s < verzeichnis.length))
                    s++;
                         if((s == verzeichnis.length) && (! verzeichnis[s].nameN.equals(gesuchtN)))
          				anzeigen.setText("Name nicht gefunden");
                         if((s <= verzeichnis.length) && (verzeichnis[s].nameN.equals(gesuchtN)))
                    		anzeigen.setText("Vorname: " + verzeichnis[s].nameV + "\n" + "Nachname: " + verzeichnis[s].nameN + "\n"
               			+ "Telefonnummer: " + verzeichnis[s].festNr + "\n" + "Handynummer: " + verzeichnis[s].mobilNr);

              }
            if(go2 == 1)
          	{
     		while((! verzeichnis[s2].nameV.equals(gesuchtV)) && (! verzeichnis[s2].nameV.equals("ENDE")))
     			s2++;
          		if(verzeichnis[s2].nameV.equals("ENDE"))
          			anzeigen.setText("Name nicht gefunden");
	     		else
          			anzeigen.setText("Vorname: " + verzeichnis[s2].nameV + "\n" + "Nachname: " + verzeichnis[s2].nameN + "\n"
               		+ "Telefonnummer: " + verzeichnis[s2].festNr + "\n" + "Handynummer: " + verzeichnis[s2].mobilNr);
               }

           }
}
 
B

bygones

Gast
du erhöhst in der while schleife das s immer. Du hast aber nur 4 einträge oder so - wenn s größer als 4 testest du dass nicht und greifst auf einen null eintrag zu !

entweder eine collection statt eines arrays nehmen oder in der schleife noch abfragen ob es überhaupt einen nächsten eintrag gibt (s.length gibt größe des arrays an, nicht die anzahl der wirklichen elemente im array9
 

Oni

Top Contributor
danke, stimmt ist mir nicht aufgefallen.

aber geht .lenght bei int?
Code:
Telefonbuch.java:173: int cannot be dereferenced
                while((! verzeichnis[s].nameN.equals(gesuchtN)) && (s < s.length))
                                                                         ^
1 error
 

meez

Top Contributor
Ja...dien Array hat 150 Einträge...
Das in den IF
Code:
verzeichnis[s] != null



EDIT:
s.length gibt größe des arrays an, nicht die anzahl der wirklichen elemente im array9.
Was er meinte ist wohl verzeichnis.length
 

Oni

Top Contributor
so hatte ich das ja vorher:
verzeichnis.length // Ergebnis 150 ?!

aber wie bekomme ich jetzt raus wieviel gefüllt das array ist?

s.length // gibt einen fehler
 
B

bygones

Gast
in einem array bekommst du das nicht raus (in einer collection schon)... du kannst du überprüfen ob verzeichnis == null ist !
 

Oni

Top Contributor
ich habe "collection " noch nie gesehn wie sie sowas aus? kann ich meinen code abändern oder muss ich ihn komplett neu machen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Habe Problem mit dem Abfangen einer Exception AWT, Swing, JavaFX & SWT 10
H Exception: java.lang.ClassCastException AWT, Swing, JavaFX & SWT 2
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
T Exception in thread "main" java.lang.NoClassDefFoundError AWT, Swing, JavaFX & SWT 4
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
G Exception javafx Thread -> caused by removing children while in EventHandler AWT, Swing, JavaFX & SWT 28
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
Z JavaFX Exception in Application start method AWT, Swing, JavaFX & SWT 2
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
R AWT no such child Exception AWT, Swing, JavaFX & SWT 7
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
A Swing Exception in thread "AWT-EventQueue-0" AWT, Swing, JavaFX & SWT 1
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
S JavaFX Exception in thread "JavaFX Application Thread" AWT, Swing, JavaFX & SWT 3
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Exception Message von Model Class via Controller in View darstellen AWT, Swing, JavaFX & SWT 39
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Exception in der Eventqueue AWT, Swing, JavaFX & SWT 8
A Swing Null Pointer Exception obwohl Objekt initialisiert AWT, Swing, JavaFX & SWT 21
X Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 AWT, Swing, JavaFX & SWT 6
H JavaFX Ein View vorschalten Exception AWT, Swing, JavaFX & SWT 7
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
M 3D-Grafik Mac Java 3D in Eclipse Exception AWT, Swing, JavaFX & SWT 0
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
I Opencv Imgproc.floodfill exception AWT, Swing, JavaFX & SWT 1
S Swing Exception in thread "AWT-EventQueue-0" bei Jlabel AWT, Swing, JavaFX & SWT 4
T Gui Exception AWT, Swing, JavaFX & SWT 2
X Auf Fensterklasse zugreifen (Nullpointer Exception) AWT, Swing, JavaFX & SWT 2
M Threads - nicht erklärbare Exception AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
J Einträge aus Table löschen ohne Exception AWT, Swing, JavaFX & SWT 6
C Event Handling Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException AWT, Swing, JavaFX & SWT 43
V Swing Nullpointer Exception bei JFormattedTextField AWT, Swing, JavaFX & SWT 4
N Swing Exception: Comparison method violates its general contract! AWT, Swing, JavaFX & SWT 13
S Exception bei BufferStrategy AWT, Swing, JavaFX & SWT 8
H Swing Exception's und MVC AWT, Swing, JavaFX & SWT 35
R Swing Mit Swing eine throws Exception Methode öffnen AWT, Swing, JavaFX & SWT 3
M Exception in thread "Thread-3" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 18
K AWT DataBuffer in DataBufferInt Exception AWT, Swing, JavaFX & SWT 2
lumo SWT Exception in thread "main" org.eclipse.swt.SWTError: No more handles AWT, Swing, JavaFX & SWT 3
S Swing AWT-Exception bei JTable mit JComboBox beim Löschen der letzten Zeile AWT, Swing, JavaFX & SWT 3
O Immer Exception in AWT-EventQueue-0 AWT, Swing, JavaFX & SWT 5
F Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: null AWT, Swing, JavaFX & SWT 5
F Swing Seltsame Exception AWT, Swing, JavaFX & SWT 5
R Swing Files auflisten (JButton, JList, Exception) AWT, Swing, JavaFX & SWT 4
V LookAndFeel Nullpoint Exception AWT, Swing, JavaFX & SWT 2
Airwolf89 Swing Exception beim Füllen einer Tabelle AWT, Swing, JavaFX & SWT 10
hdi SWT Zwei mal Shell öffnen = Exception AWT, Swing, JavaFX & SWT 6
N Exception Behandlung mit setDefaultUncaughtExceptionHandler, insbesondere im EventDispatcher Thread AWT, Swing, JavaFX & SWT 4
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
O Exception bei repaint AWT, Swing, JavaFX & SWT 3
D Bild zeichnen lassen aus array, null pointer Exception AWT, Swing, JavaFX & SWT 2
B JTable ValueChanged verursacht Exception AWT, Swing, JavaFX & SWT 3
S Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 7
Daniel_L JTable, (Auto-)RowSorter und NullPointer-Exception AWT, Swing, JavaFX & SWT 6
M Exception in eine JTextArea anzeigen AWT, Swing, JavaFX & SWT 7
T Exception: Adding a window to a container AWT, Swing, JavaFX & SWT 14
G Kann mir jemand diese Exception erklaeren? AWT, Swing, JavaFX & SWT 8
T AWT Exception AWT, Swing, JavaFX & SWT 5
A Exception beim LineWrapping AWT, Swing, JavaFX & SWT 16
P Für mich unverständliche Exception AWT, Swing, JavaFX & SWT 3
N JList - Nullpointer Exception AWT, Swing, JavaFX & SWT 4
Lony AbstractTableModel Exception in thread "AWT-EventQueue- AWT, Swing, JavaFX & SWT 3
T Warum schmeißt das eine Exception? AWT, Swing, JavaFX & SWT 6
I EventDispatchThread Exception AWT, Swing, JavaFX & SWT 5
M Problem: "ArrayIndexOutOfBounds Exception" AWT, Swing, JavaFX & SWT 11
C Out of Bounds Exception, Array of JTextField AWT, Swing, JavaFX & SWT 6
B JTable Vector Exception bei eigenem CellEditor AWT, Swing, JavaFX & SWT 3
D Seltsame AWT-Exception AWT, Swing, JavaFX & SWT 2
M Button und Exception mit NetBeans AWT, Swing, JavaFX & SWT 3
P paint null pointer exception AWT, Swing, JavaFX & SWT 3
M Exception Meldung aus Thread an jTextField1 übergeben AWT, Swing, JavaFX & SWT 6
A Null pointer exception beim Neuzeichnen AWT, Swing, JavaFX & SWT 4
R DataVector bei TableModel - Class Cast Exception AWT, Swing, JavaFX & SWT 9
G Drag & Drop bzw. Data Transfer - Exception nach Drag AWT, Swing, JavaFX & SWT 1
K Exception mit "Unknown Source" AWT, Swing, JavaFX & SWT 5
Z jar-File mit SWT - Exception AWT, Swing, JavaFX & SWT 4
V Null Pointer Exception bei JTextField setText AWT, Swing, JavaFX & SWT 25
T Programm funkt. nicht - Exception AWT, Swing, JavaFX & SWT 7
A Exception in thread "AWT-EventQueue-0" java.lang.N AWT, Swing, JavaFX & SWT 4
G Exception in JList oder JTextArea AWT, Swing, JavaFX & SWT 9
M java headless exception AWT, Swing, JavaFX & SWT 5
T ScrollEvent richtig(er) abfangen? AWT, Swing, JavaFX & SWT 0
A JOptionPane OK ohne Eingabe abfangen AWT, Swing, JavaFX & SWT 10
Neumi5694 Swing JList - Klick abfangen AWT, Swing, JavaFX & SWT 3
D Swing Events vom JLayer abfangen AWT, Swing, JavaFX & SWT 2
E Outlook Email Senden-Button abfangen AWT, Swing, JavaFX & SWT 5
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
T Swing JTextPane Tastatureingabe abfangen AWT, Swing, JavaFX & SWT 4
M JFileChooser Abfangen des DateiTypen möglich?? AWT, Swing, JavaFX & SWT 5
S Swing JTable - Editierung von Zellen abfangen AWT, Swing, JavaFX & SWT 3
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
M JOptionPane.showInputDialog abbrechen abfangen? AWT, Swing, JavaFX & SWT 2
P Swing Tastaturereignisse auf gesamten Frame Abfangen AWT, Swing, JavaFX & SWT 13
sylo STRG + TAB KeyEvent abfangen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben