Fehlendes Argument in Main-Methode abfangen

Status
Nicht offen für weitere Antworten.

Irgendwer

Mitglied
Hallo!

Ich bin Neuling und versuche mich gerade ein wenig in Java einzuarbeiten.

Aktuell habe ich folgendes Programm:

Code:
import java.lang.Math;
import java.text.DecimalFormat;

public class GoldRechner {
    public static void main(String[] args)
    {
    double zahl;
    double gold;
    zahl=Double.parseDouble(args[0]);
    gold=Math.round((zahl*0.04684)*100.) / 100.;
    DecimalFormat df = new DecimalFormat("#.00");
    System.out.print("Für den Betrag von " + df.format(zahl) + " Euro erhalten Sie " + gold +" g Gold.");
    }
}

Das Programm erhält in der Kommandozeile einen Wert, z.B. 100 und gibt dazu die entsprechende Gold-Menge aus.

Nun soll ich noch eine Fehlerinformation einbauen, wenn kein Parameterwert angegeben wird.

Kann mir einer verraten wie ich das machen muss?

Vielen Dank!
 

fjord

Bekanntes Mitglied
Jedes Array hat eine Länge. Wenn dein Programm ein Argument von der Kommandozeile braucht, musst du sicherstellen, dass die Länge des Arrays mindestens 1 ist.
 

Irgendwer

Mitglied
Aha, ich danke euch...!

Habe es jetzt so gelöst:

Code:
import java.lang.Math;
import java.text.DecimalFormat;

public class GoldRechner {
    public static void main(String[] args){
    if(args.length==0){System.out.print("Fehlendes Argument");}
    else{
    double zahl;
    double gold;
    zahl=Double.parseDouble(args[0]);
    gold=Math.round((zahl*0.04684)*100.) / 100.;
    DecimalFormat df = new DecimalFormat("#.00");
    System.out.print("Für den Betrag von " + df.format(zahl) + " Euro erhalten Sie " + gold +" g Gold.");
    }
    }
}

Ist vielleicht etwas "kompliziert"? Weiß nicht....also generell ist es nur wichtig, dass alles mit 2 Stellen nach dem Komma ausgegeben wird...habe das halt so wie oben geschrieben gelöst!
 

Marco13

Top Contributor
Manche Leute betrachten es zwar als guten Stil, wenn eine Methode genau EINEN "Ausgang" hat, und dieser Ausgang genau die letzte Zeile der Methode ist, aber ganz subjektiv muss ich sagen, dass bei "Watchdogs", also kurzen Zeilen, die nur die Gültigkeit der parameter überprüfen, ein frühes return auch OK ist. Also nicht
Code:
if(args.length==0)
{
    System.out.print("Fehlendes Argument");
}
else
{
    // 1000 Zeilen code
}
sondern
Code:
if(args.length==0)
{
    System.out.print("Fehlendes Argument");
    return;
}
// 1000 Zeilen code

Das mit dem Decimalformat passt so schon...
 
T

Tomate_Salat

Gast
Ich würde da sogar eine
Java:
System.exit(0);
setzen, dass es wirklich eindeutig ist.
 

faetzminator

Gesperrter Benutzer
ein return verlässt nur die Methode, da main() aber die "oberste" Methode ist, wird das Programm dadurch beendet.
ein System.exit(0) beendet das Programm
 
S

Spacerat

Gast
"return" verlässt das Programm in diesem Fall genau wie "System.exit(0)". Mit "System.exit()" lässt sich ein Fehrercode an das aufrufende Programm zurückgeben. In diesem Fall wäre z.B. sogar "System.exit(1)" angebracht, als Warnung, das was nicht stimmt (Anzahl der Argumente).
 
T

Tomate_Salat

Gast
Aber System.exit(1) müsste man dann doch auch noch iwie behandeln, dass eine Meldung erscheint
 
S

Spacerat

Gast
Müssen? Nicht wirklich. Ist halt wie bei einem normalen Return-Objekt. Kann man verwenden (z.B. in Scripts) muss mann aber nicht.
 
S

Spacerat

Gast
[highlight=java]if(args.length==0)
{
System.out.print("Fehlendes Argument"); // Meldung ausgeben
System.exit(1); // Warnung... Script benachrichtigen
}
try {
// 1000 Zeilen code
System.exit(0); // Fehlerfrei ausgeführt
} catch(Throwable e) {
e.printStackTrace();
System.exit(-1); // Fehler... Script benachrichtigen
}[/highlight]:bahnhof:
Das innerhalb vom Try-Catch-Block geschieht afaik (vllt. auch etwas anders) automatisch.
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
Q Compilerfehler - fehlendes Semikolon und "not a stateme Java Basics - Anfänger-Themen 2
Z actual and formal argument lists differ in length Java Basics - Anfänger-Themen 13
S ArrayList.add Falsches Argument? Java Basics - Anfänger-Themen 1
M Argument in Integer verwandeln und das Doppelte davon printen Java Basics - Anfänger-Themen 9
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
H Argument bei Methode .toArray() Java Basics - Anfänger-Themen 8
V RMI - argument type mismatch Java Basics - Anfänger-Themen 1
V Operatoren Java if-else argument Java Basics - Anfänger-Themen 4
A Double[] Array zahlen per Argument übergeben Java Basics - Anfänger-Themen 5
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
H Methoden null-Argument bei varargs Java Basics - Anfänger-Themen 6
M Hochkomma in Argument Java Basics - Anfänger-Themen 7
V Erste Schritte Return ohne Argument Java Basics - Anfänger-Themen 6
M Argument der Kommandozeile überprüfen Java Basics - Anfänger-Themen 4
C Begriffe Parameter und Argument Java Basics - Anfänger-Themen 4
danielita Dateiname als Argument Java Basics - Anfänger-Themen 3
nabla Threads mit Argument? Java Basics - Anfänger-Themen 2
A Klassennahmen über Kommandenzeile-Argument mitteilen Java Basics - Anfänger-Themen 2
X übergebenes Argument als Ziel Java Basics - Anfänger-Themen 7
L Dieses Problem nagt an meiner Würde - Argument * Java Basics - Anfänger-Themen 4
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
C Methodenrückgabe wird in der main nicht berücksichtigt Java Basics - Anfänger-Themen 2
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Main startet nicht bei vorgegebenen Code Java Basics - Anfänger-Themen 41
G main Methode Java Basics - Anfänger-Themen 5
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
J main methode Java Basics - Anfänger-Themen 1
B No Main Classes Found Java Basics - Anfänger-Themen 7
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
E Was kommt in ein Objekt und was in die Main Methode? Java Basics - Anfänger-Themen 8
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
scratchy1 ArrayOutOfBoundException in main-Methode Java Basics - Anfänger-Themen 17
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
P Parameterübergabe, von Methode zu Methode zu main Java Basics - Anfänger-Themen 4
J Kapselung Array in Set ändern und in Main ausgeben lassen Java Basics - Anfänger-Themen 4
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
G Was als main Method Java Basics - Anfänger-Themen 6
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
J Compiler-Fehler Java findet main Klasse nicht Java Basics - Anfänger-Themen 16
B Parameterübergabe in main Java Basics - Anfänger-Themen 1
A Variablen Main Klasse soll auf eine andere Klasse zugreifen Java Basics - Anfänger-Themen 3
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
J Parameter in main verwenden Java Basics - Anfänger-Themen 3
M Methodenaufruf in der Main Datei funzt nicht Java Basics - Anfänger-Themen 13
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
G Instanzvariable in main-Methode verboten? Java Basics - Anfänger-Themen 3
M Objekt starten von der main-Methode Java Basics - Anfänger-Themen 1
S Fehler: Editor does not contain a main type Java Basics - Anfänger-Themen 3
G Programm wird nicht ausgeführt: Editor does not contain a main type Java Basics - Anfänger-Themen 10
A Methode aufrufen in main-Methode Java Basics - Anfänger-Themen 5
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
C Erste Schritte (Netbeans) no main classes found Java Basics - Anfänger-Themen 5
U Klassen IntelliJ14.1.1 Ultimate startet eine Main-Klasse NICHT MEHR Java Basics - Anfänger-Themen 0
P Methoden private int[] in main Java Basics - Anfänger-Themen 16
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
AssELAss Klassen Java Klasse in main-methode ausführen Java Basics - Anfänger-Themen 7
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
P could not find main class obwohl da Java Basics - Anfänger-Themen 17
J Methode in main-Methode aufrufen Java Basics - Anfänger-Themen 5
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
TheMenox Methoden Auslagerung von Code aus der "main" Methode sinnvoll? Java Basics - Anfänger-Themen 70
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
S Methode auf Main zugreifen Java Basics - Anfänger-Themen 5
D String aus Main in Klasse übergeben Java Basics - Anfänger-Themen 4
S Methoden main-Methode integrieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben