DestinyScript verfügt über eine Fehlerbehandlung, die eine große Anzahl verschiedener Probleme, die im verfassten Code auftreten können, genau beschreiben kann.
Existiert nur zur Sicherheit, sollte jedoch eigentlich nie auftreten. Falls dieser Fehler angezeigt wird, kann es sein, dass Destiny.dll einem Programmierfehler unterliegt oder der Speicher defekt ist.
Ein häufig bei Tippfehlern auftretender Fehler, meist wenn ein Zeichen mitten im Code falsch ist und dies beim Schreiben nicht aufgefallen ist (z.B.: v[1) = 7;).
Der Code-Interpreter erhält keinen Wert an einer Stelle, wo jedoch einer stehen müsste. Beispiele hierfür wären leere Klammern (v[1] = 3 + ();), Fehlende Parameter mit korrekt gesetztem Komma (v[1] = Logic.And3(true, true, );) und Aufrufe, die in der Hilfe ohne "OUTPUT"-Block stehen, also mangels Ausgabewert nicht für Operationen verwendet werden können (v[1] = Keyboard.SetKeyState(VK_LEFT, KEYEVENTF_KEYUP);).
Im zu interpretierenden Code steht der Name eines Objektes, einer Konstante, Methode oder Eigenschaft, der nicht definiert ist. Meist liegt entweder ein Irrtum oder ein schwer zu erkennender Tippfehler vor.
Deutet auf einen Programmierfehler in einer Datenkonvertierungspassage von Destiny.dll oder defekten Speicher hin, üblicherweise befindet sich kein oder zumindest nicht dieser Fehler im zu interpretierenden Code.
Viele Werte, auf die DestinyScript Zugriff gewährt, sind lediglich lesbar, können jedoch nicht geändert werden. Wird ein schreibgeschützter Speicherbereich zum Beschreiben adressiert, tritt dieser Fehler auf.
Deutet auf einen ungültigen Wert innerhalb von eckigen Klammern hin (z.B.: v[1] = Picture[-1].Red;).
Passiert, wenn ein Wert zu einem anderen Datentyp gewandelt werden soll, jedoch zu groß für den Zieltyp ist.
Der zur Verfügung stehende RAM ist zu klein, um die angeforderte Menge an Daten bereitzustellen. Besonders beim Anlegen von Strings, die die häufigste Fehlerquelle hierfür sind, sollte immer genau darauf geachtet werden, ihre Größe nicht explodieren zu lassen. Andere mögliche Quellen sind vor allem "ReAlloc()"-Methoden. Je nach Betriebssystem-Version kann dieser Fehler irrtümlich anstelle von #24 auftreten.
Ähnelt häufig dem Arraygrenzen-Fehler, jedoch ist der Verwendungszweck des falsch angegebenen Wertes anderer Natur. Für viele Parameter von Methoden-Aufrufen gibt es vorgeschriebene Wertebereiche.
Tritt auf, wenn binäre Operatoren zusammen mit Kommazahlen verwendet werden, was jedoch nicht zulässig ist, da nicht davon ausgegangen wird, dass lediglich der Vorkommateil des Operanden gemeint ist (z.B.: v[1] = 1.5 & 1;). Sollte dem doch so sein, ist eine explizite Dword-Konvertierung notwendig (siehe Objekt "Convert").
Tritt auf, wenn ein Boolescher Wert (TRUE oder FALSE) mit einem grundmathematischen Operator oder einer binären Verknüpfung verbunden wird (z.B.: s[1] = true + false;).
Ein String wurde mit einem grundmathematischen oder binären Operator verbunden. Dies ist abgesehen von "+" zwischen zwei Strings (auch wenn ".." empfohlen wird) nicht möglich (z.B. a[1] = "3" * 5;). Sollte der String nur aus einer textgewordenen Zahl bestehen, muss er vorher explizit konvertiert werden (siehe Objekt "Convert").
Steht stellvertretend für diverse, schwer auseinanderzuhaltende Fehler beim Rechnen mit Kommazahlen. Häufig handelt es sich um einen Datenfehler mit einer ungültigen Zahl, um ein undefiniertes Rechenergebnis oder eine komplexe (anstelle einer reellen) Zahl, mit der DestinyScript nicht umgehen kann (z.B.: f[1] = Math.Power(-2, 2.5);).
Der Kommazahlenwert sprengt, führende Nullen und jene nach der letzten definierten Kommastelle nicht mitgezählt, den technisch möglichen Bereich von 13 Ziffern (z.B.: f[1] = 1234567890.0987654321;).
Das Ergebnis einer Division durch Null ist in der Mathematik nicht definiert, daher muss eine derartige Berechnung abgelehnt werden (z.B.: v[1] = 5 / 0;), zudem ist DestinyScript nicht in der Lage, die häufig vertretene Theorie eines (+/-)Unendlich (auch vertreten in der Norm "IEEE 754") als Ergebnis sinnvoll zu verarbeiten. Sollten Werte dynamisch angegeben sein, muss die Berechnung im Falle eines 0-Divisors manuell umgangen werden.
Ein String soll in eine Zahl gewandelt werden, was jedoch aufgrund des Inhalts, der sich nicht nur auf eine Zahl beschränkt, nicht möglich ist (z.B.: v[1] = "Zahl: 12345";).
Es wird im Code auf eine Position in einem String verwiesen, die außerhalb des Inhalts liegt.
Das Nutzen von AuroraSheet-Eigenschaften setzt häufig voraus, dass im referenzierten Objekt zuvor auch eine Grafik im Speicher generiert oder aus einer Datei geladen wurde.
Im Code wird beim Auslesen oder Verändern von Pixeln durch Positions- oder Größenangaben auf eine Stelle verwiesen, die sich außerhalb der Bildabmessungen befindet.
Beim Kopieren von Bildinhalten, bei der Quelle und Ziel identisch sind, muss darauf geachtet werden, dass sich die dafür genutzten Bereiche nicht überschneiden.
AuroraSheet-Paletten umfassen technisch begingt immer 256 Farben, jegliche Referenzen auf Werte außerhalb eines Bereiches von 0 bis 255 sind ungültig.
Das System, zu dem eine Verbindung aufgebaut werden soll, weist entweder keine kompatible Winsock-Version (DestinyScript nutzt Winsock 2.2) oder notwendige Hardware auf.
Tritt auf, wenn die Konstante NEXT_FREE_SOCKET von Server.Accept() verwendet wird und kein Client-Socket mehr frei ist. Zunächst einen freien Socket durch Client.NextFree() zu ermitteln kann hier helfen.
Windows akzeptiert, wenn dieser Fehler passiert, keine weiteren aktiven Sockets oder ein anderer aktiver Prozess blockiert deren Erstellung. Je nach Betriebssystem-Version kann es auch passieren, dass stattdessen Fehler #8 oder #27 auftritt.
Das Socket ist bereits mit einem Ziel verbunden, die gewollte Aktion ist jedoch nur mit einem geschlossenen möglich.
Das Socket befindet sich im geschlossenen Zustand, die gewollte Aktion ist jedoch nur mit einem geöffneten möglich.
Passiert bei einem Fehlschlag von Client[].Connect(), wenn die angegebene Adresse nicht gefunden wurde. Falls SOCKETFLAG_NOTBLOCKING verwendet wurde und zum Zeitpunkt, zu dem der Versuch gestartet ist, noch nicht klar war, dass die Verbindung nicht glücken wird, wird trotz Fehlschlag kein Fehler ausgegeben.
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...