From 6720b988f2550df4fe2d7d08b2a736b2ea286188 Mon Sep 17 00:00:00 2001 From: hneemann Date: Mon, 23 Jul 2018 15:11:26 +0200 Subject: [PATCH] Better error message if loading of program memory fails. --- .../java/de/neemann/digital/core/NodeException.java | 10 ++++++++++ src/main/java/de/neemann/digital/gui/RomLoader.java | 6 +++--- src/main/resources/lang/lang_de.xml | 5 +++-- src/main/resources/lang/lang_en.xml | 5 +++-- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/neemann/digital/core/NodeException.java b/src/main/java/de/neemann/digital/core/NodeException.java index f4f1ae937..03a324ddc 100644 --- a/src/main/java/de/neemann/digital/core/NodeException.java +++ b/src/main/java/de/neemann/digital/core/NodeException.java @@ -24,6 +24,16 @@ public class NodeException extends ExceptionWithOrigin { private final ImmutableList values; private final int input; + /** + * Creates a new instance. + * + * @param message the message + * @param cause the cause of this exception + */ + public NodeException(String message, Exception cause) { + this(message, null, -1, null, cause); + } + /** * Creates a new instance. * diff --git a/src/main/java/de/neemann/digital/gui/RomLoader.java b/src/main/java/de/neemann/digital/gui/RomLoader.java index 4c80b68d4..79ab77323 100644 --- a/src/main/java/de/neemann/digital/gui/RomLoader.java +++ b/src/main/java/de/neemann/digital/gui/RomLoader.java @@ -42,14 +42,14 @@ public class RomLoader implements ModelModifier { roms.add(pr); } if (roms.isEmpty()) - throw new NodeException(Lang.get("msg_noRomFound")); + throw new NodeException(Lang.get("err_noRomFound")); if (roms.size() > 1) - throw new NodeException(Lang.get("msg_moreThenOneRomFound")); + throw new NodeException(Lang.get("err_moreThenOneRomFound")); try { roms.get(0).setProgramMemory(new DataField(romHex)); } catch (IOException e) { - throw new NodeException(e.getMessage()); + throw new NodeException(Lang.get("err_errorLoadingRomData"), e); } } } diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml index b63417362..a3fcdea2b 100644 --- a/src/main/resources/lang/lang_de.xml +++ b/src/main/resources/lang/lang_de.xml @@ -934,6 +934,9 @@ Sind evtl. die Namen der Variablen nicht eindeutig? Der Zähler benötigt mindestens zwei Bits. Taktelemente können im asynchronen Modus nicht verwendet werden. Fehler beim Export zu Verilog. + Kein Programmspeicher im Modell gefunden! Ein Programmspeicher muss gewählt werden! + Mehr als einen Programmspeicher gefunden. Es darf nur einen Programmspeicher geben. + Fehler beim Laden des Programmspeichers. Adress-Bits Anzahl der Adress-Bits, die verwendet werden. @@ -1448,8 +1451,6 @@ eine <a href="https://github.com/hneemann/[[name]]/issues/new?labels=enh Pinbelegung Pin {0}: {1} Die Änderung der Einstellung erfordert einen Neustart! - Kein ROM im Modell gefunden! Ein ROM muss als Programmspeicher gewählt werden! - Mehr als einen Programmspeicher gefunden. Es darf nur einen Programmspeicher geben. Geben Sie einen Ausdruck ein: Fehler bei der Ausführung der Tests: Testergebnis diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml index ffde16965..c1e2c689e 100644 --- a/src/main/resources/lang/lang_en.xml +++ b/src/main/resources/lang/lang_en.xml @@ -928,6 +928,9 @@ The name "{0}" is not unique! Clock elements can not be used in asynchronous mode. Error during export to Verilog. + No program memory found! The program memory needs to be flagged as such. + More then one program memories found! Only one program memory must be flages as such. + Error loading the program memory. Address Bits Number of address bits used. @@ -1435,8 +1438,6 @@ Pin assignment Pin {0}: {1} A restart is required for the changes to take effect! - No ROM found! ROM needs to be set to be program memory. - More then one ROM found! Only one ROM must be set to be program memory. Command {0} unknown! Enter an expression: Error running the tests: