menu
{$Head.Title}}

Übung JavaScript Account Error

Übung JavaScript Account Error

Ausgangslage

Mit dieser Übung programmieren wir die Klassen Account gemäss mit den Methoden deposit- und withdraw().

Die Methode deposit() soll einen Betrag definiert durch amount einzahlen.

Die Methode withdraw() soll einen Betrag definiert durch amount auszahlen.

Beide Methoden sollen über Error Handling abgesichert werden gemäss den folgenden Regeln:

  • Ein negativer Saldo löst einen Custom AccountError aus. Die Klasse AccountError ist selber zu programmieren als Custom Error Klasse.
  • Ein negatives Argument löst eine AccountError aus. Es handelt sich um die gleiche AccountError Klasse.
Vorgehen

Lösen Sie bitte die Aufgabe wie folgt:

  1. Erstellen die Datei Account.js gemäss dem folgenden Listing:
    class AccountError extends Error {
        constructor(...args) {
            super(args);
            if (Error.captureStackTrace) {
              Error.captureStackTrace(this, AccountError);
            }
        }
    }
    
    class Account {
        constructor(nr, saldo) {
            this.nr = nr;
            this.saldo = saldo;
        }
        toString() {
            return 'Account [nr=' + this.nr + ', saldo=' + this.saldo + ']';
        }
    }
    
    export {Account, AccountError};
  2. Programmieren Sie die Methoden deposit() und withdraw() in der Klasse Account gemäss der Ausgangslage.
  3. Programmieren Sie die Methode deposit(double amount) ohne Fehlerbehandlung.
  4. Programmieren Sie die Methode withdraw(double amount) ohne Fehlerbehandlung.
  5. Erstellen Sie die Datei AccountTest.js und testen Sie die Account Klasse gemäss dem folgenden Listing
    import {Account, AccountError} from './Account.js';
    
    let a = new Account('1111-2222', 0.0);
    
    console.log('a = ', a.toString());
    
    a.deposit(100.5);
    
    console.log('a = ', a.toString());
    
    a.withdraw(50.1);
    
    console.log('a = ', a.toString());

    Testen Sie das Programm mit Node JS aus.

  6. Bauen Sie die Fehlerbehandlung gemäss der Aufgabe ein.
  7. Testen Sie die korrekte Fehlerbehandlung über die Klasse TestAccount.
Lösung

Eine mögliche Lösung finden Sie hier