Frage zu einem Exception oder Api-Dokument

Status
Nicht offen für weitere Antworten.

math.iso@live.de

Aktives Mitglied
Hallo java-programmierer

Methoden die Exception auslösen ,werden in der Api-Dokumentation erwähnt.

Bei einem Auschnitt an einem Beispiel Programm "Java einstieg 6" hat der Autor ,

eine add Methode aus der Basisklasse Container in einem Try-catch Block versehen

Programmauschnitt




Code:
setSize(500, 300);
setLayout(new BorderLayout());


try {
    add("North", new TextField("Text 1"));
      add("East", new TextField("Text 1"));
      add("West", new TextField("Text 1"));
      add("South", new TextField("Text 1"));
      add("Center", new TextField("Text 1"));
   }
   catch (IllegalArgumentException ex){
   System.out.println("Falscher Parameter:"+ex);
   }

nun hab ich nach der add Methode in Container nachgeforscht und sehe da kein IllegalArgumentException auslösung

public Component add(String name,
Component comp)Adds the specified component to this container. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).
This method is obsolete as of 1.1. Please use the method add(Component, Object) instead.


Throws:
NullPointerException - if comp is null
See Also:
add(Component, Object)

ich hoffe ihr könnt mir behilflich sein :)
 

Landei

Top Contributor
Container.add(String name, Component comp) ruft Container.addImpl(Component comp, Object constraints, int index) auf und dort steht geschrieben

...
* @param comp the component to be added
* @param constraints an object expressing layout constraints
* for this component
* @param index the position in the container's list at which to
* insert the component, where <code>-1</code>
* means append to the end
* @exception IllegalArgumentException if {@code index} is invalid;
* if {@code comp} is a child of this container, the valid
* range is {@code [-1, getComponentCount()-1]}; if component is
* not a child of this container, the valid range is
* {@code [-1, getComponentCount()]}
*
* @exception IllegalArgumentException if {@code comp} is an ancestor of
* this container
* @exception IllegalArgumentException if adding a window to a container
* @exception NullPointerException if {@code comp} is {@code null}
* @see #add(Component)
* @see #add(Component, int)
* @see #add(Component, java.lang.Object)
* @see LayoutManager
* @see LayoutManager2
* @since JDK1.1
 

math.iso@live.de

Aktives Mitglied
aber da steht doch gar nicht dass es augerufen wird sondern ,dass die methode veraltet ist und gegenüber der methode addImpl(Component comp, Object constraints, int index) ihren vorteil hat.

This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).

convenience = der Vorteil ,der Komfort,der Nutzen (nach übersetzung von Leo.org)

Aus welcher Information etnimmst du ,die Bedeutung der ausrufung in der Api-Dokumentation Landei ????
 

Landei

Top Contributor
add ruft addImpl auf:
Code:
    public Component add(String name, Component comp) {
	addImpl(comp, name, -1);
	return comp;
    }
Und addImpl sagt, es würfe u.U. eine IllegalArgumentException (die auch in add nicht gefangen wird). Adde z.B. ein Window zu deinem Container, und es fliegt eine IllegalArgumentException. Und dein Autor ist etwas übervorsichtig und fängt sie, obwohl sie in dem Beispiel nicht auftreten wird - wo siehst du ein Problem?
 

math.iso@live.de

Aktives Mitglied
was heißt bei dir es würfe ???würfe ?

u.U???

ich bin doch kein pro wie du :noe:


aber in dem text steht doch gar nicht mit add drine ;

mit meinen englisch-übersetzen heißt das

Adds the specified component to this container. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).

nun übersetzt:

Fügt ein festgelegten Komponente zu diesem Container.Diese ist ein bequemliche(oder vorteilhafte ,einfache ) methode für addImpl(parameter 1,parameter 2)

dieses addimpl,das ist der name der methode ,es wird doch gar nicht von aurufen der methode geredet ,hab ich ein übersetzungsfehler ???
 

voidee

Mitglied
Verstehe zwar das Problem nicht ganz, aber trotzdem mal folgendes:

die Java Dokumentation zeigt (meistens) immer nur die Fehler, die in der Funktion direkt ausgelöst werden, oder die dem Entwickler/Dokumentierer wichtig erschienen. Da läuft kein Programm drüber, sondern ein Mensch schreibt die Doku, und der gibt an, was ihm wichtig ist und was nicht. In der speziellen Methode add(...) hätte man den Hinweis auf die NullPointerException auch weglassen können, da sie nicht direkt ausgelöst wird. Aber tieger in der Implementation ist das schon wichtig, und deshalb hat man es hier nochmals(!) erwähnt.

Die Methode add(...) ruft intern addImpl(...) auf, und diese kann - unter gewissen Umständen - eine IllegalArgumentException aufrufen. Was heisst hier unter gewissen Umständen?

Container ist eine Basisklasse, die mehrere Komponenten aufnehmen kann, also z.B. auch ein Panel. Auf dieses fiktive Panel kann man das selbe Panel (ähnlich einer Rekursion) nicht nochmal hinzufügen. Es gibt also immer sowas wie eine Eltern-Kind Beziehung der Komponenten. Aber Eltern-(selbe) Eltern geht nicht.

Deswegen gibt es meistens - d.h. dann hat man es "richtig" gemacht - keinen Fehler aber in besonderen Fällen kann ein Fehler auftreteten. Gerade bei verschachtelten Programmen mit vielen Klassen kann das schon mal aus Versehen passieren.
 

math.iso@live.de

Aktives Mitglied
Also nochmal :

Die Api-Dokumentation ist ja dazu da , dass man weiß ,welche methode ,was ausführt (zum beispiel)

ich will nur eine Sache wissen.

ich will wir wissen , wo bei der api-dokumentation steht ,dass die add(String name , Compenent blabla)methode ,die methode ausruft addimpl...(nach aussage von Landei)
 

Tobias

Top Contributor
Das steht NICHT in der API-Dokumentation. Aber im Quellcode, der ja für jedermann frei zugänglich ist.. Landei ging es nur darum, dir zu erklären, warum der Autor deines Buches hier meint eine IllegalArgumentException fangen zu müßen.
 

voidee

Mitglied
In der API Doku steht doch gleich im ersten Satz:

Code:
    /**
     * Adds the specified component to this container.
     * This is a convenience method for {@link #addImpl}.

D.h. doch, dass ich mir auch um die API von addImpl anschauen sollte (ist ja sogar verlinkt).

Dort heisst es

Code:
     *
     * @exception IllegalArgumentException if {@code comp} is an ancestor of
     *                                     this container
     * @exception IllegalArgumentException if adding a window to a container
     * @exception NullPointerException if {@code comp} is {@code null}

Steht alles da.[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
A Frage zu einem Array Java Basics - Anfänger-Themen 14
M Frage zum generellen Verständiss von OO an einem Beispiel Java Basics - Anfänger-Themen 4
F Frage von einem Neuling: Was bedeutet Scanner scanner ? Java Basics - Anfänger-Themen 5
S Frage zu einem Syntax Java Basics - Anfänger-Themen 2
M Frage zu einem Parameter Eingabe eines programms Java Basics - Anfänger-Themen 3
T Frage zu einem kleinen programm mit array's Java Basics - Anfänger-Themen 8
G Frage zur einfügen in einem Binärbaum Java Basics - Anfänger-Themen 21
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
F Frage betreff Programmierbücher zu Lagerverwaltung als Konsolenprogramm Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
I String.split regex Frage Java Basics - Anfänger-Themen 2
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
J Frage zum Loggen Java Basics - Anfänger-Themen 18
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
B Erste Schritte Learning Coding (!) Frage an erfahrene Programmierer. Java Basics - Anfänger-Themen 23
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
C Exception-Frage Java Basics - Anfänger-Themen 3
J Eine Frage zur Schreibweise == ? : Java Basics - Anfänger-Themen 3
S Frage des Designs Java Basics - Anfänger-Themen 1
JavaTalksToMe Extends/Implements Frage Java Basics - Anfänger-Themen 3
pkm Frage zu Servletfunktion Java Basics - Anfänger-Themen 0
B Frage zur Währungsumrechnung Java Basics - Anfänger-Themen 3
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
D Frage zur IDE IntelliJ IDEA Java Basics - Anfänger-Themen 6
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
N Frage zum Newton-Fraktal Java Basics - Anfänger-Themen 1
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
I Frage zu SkipList Java Basics - Anfänger-Themen 4
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
Kirby.exe Allgemeine Frage Java Basics - Anfänger-Themen 3
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
F Frage zu Iteratoren Java Basics - Anfänger-Themen 2
C Erste Schritte Frage zur ArrayList Java Basics - Anfänger-Themen 15
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
H Frage zur ermittlung eines doppelte Paars aus Sotieralgorithmus Java Basics - Anfänger-Themen 4
H Frage zum Array Java Basics - Anfänger-Themen 17
G Schach -Frage 2- Maussteuerung Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben