[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt HyperlinkTextDestination.destinationText.contents

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

HyperlinkTextDestination.destinationText.contents

Uwe Laubender
Beiträge gesamt: 5317

21. Mär 2012, 23:18
Beitrag # 31 von 32
Beitrag ID: #492211
Bewertung:
(2959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Philipp!

Interessantes Szenarium.
Da werde ich mich auch noch mal an die Arbeit machen müssen. Aber nicht mehr heute Abend ;-)

Ich nehme die Aufgabe mal sportlich.
Einen schönen Abend wünsche ich Dir noch!


als Antwort auf: [#492206]
X

HyperlinkTextDestination.destinationText.contents

WernerPerplies
Beiträge gesamt: 2762

22. Mär 2012, 07:45
Beitrag # 32 von 32
Beitrag ID: #492216
Bewertung:
(2925 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag Philipp,

Zitat @ Herr Perplies: Ich habe Ihr Script "WpsReadHyperLinkUrls" ausprobiert, jedoch ist es bei meinem Versuch mit den bildern als Hyperlink auch abgebrochen.


Vielen Dank für die Rückmeldung, der Fehler ist erkannt, und wird kurzfristig behoben.

Ursache ist eine fehlende, lokalisierte Fehlermeldung, deshalb kann die erkannte Fehlermeldung nicht ausgegeben werden.

Andernfalls hättest Du vermutlich auch die Fehlersituation in Deinem Sorucecode erkannt.

Meine Empfehlung:

Setze try - catch sinnvoll ein:

dieser Einsatz;
try
{
...
}
catch {e}
ist eine echte Holzhammermethode zum Ignorieren jeglichen Fehlers innerhalb der Try-Klammer und ist mit Sicherheit die Ursache vieler schlafloser Nächte von Programmierern.

Auch in Deinem Code wird der eigentliche Fehler jetzt ignoriert.

Richtige Fehlerbehandlung geht so:

Jeder Funktionsinhalt, in der eine Fehlersituation auftreten kann, sollte so in
Code
try  
{
...
}
catch (error)
{
Fehlerbehandlung!
}

in try - catch geklammert werden.

Falls es jetzt einen Aufschrei geben sollte:
try - catch ohne Fehler ist Schreibarbeit, kostet aber fast keine Performance.

Den Performanceeinbruch gibt es erst im Fehlerfall, und da sollte er nicht kritisch sein.

Fehlerbehandlung:

Im einfachsten Fall so:

alert(error.message+"\n" + error.line + "\n");

Falls Du Fehler hast, die [b]ignoriert werden sollen:

In etwas so:

// Fehler 12345 ignorieren
if (error.number != 12345)
{
alert(error.message+"\n" + error.line + "\n");
}

In vielen meinen Skripts unterdrücke ich die fast alle Fehlermeldungen während des Skriptlaufs, schreibe sie aber in eine Protokolldatei.

Vorteil:
Skript wird nicht abgebrochen, aufgetretene Fehler können nachträglich analysiert werden.

Es gibt natürlich [b]NoGo-Fehler, bei denen ein Abbruch erfolgen muss.

Für zu ignorierende Fehler sollte aber nur im Ausnahmefall ein Fehler ausgelöst werden, deshalb ist es besser, eine mögliche Fehlerquelle im Voraus zu erkennen und zu umgehen.

Damit wäre ich bei Deinem Sourcecode:

Der Fehler liegt m. E. nach in dieser Zeile, und ein richtig angewendeter try - catch hätte ihn Dir verraten:
Code
    usedSourcesContentsArray[n] = d.hyperlinkTextSources.itemByID(coupledArrayIDs[n][1]).sourceText.contents; 

eerror.message ---> Objekt unterstützt Eigenschaft [i]sourceText nicht!

Die Fehlerbehandlungkönnte so aussehen:
Code
if (d.hyperlinkTextSources.itemByID(coupledArrayIDs[n][1]).hasOwnProperty("sourceText")) 
{
usedSourcesContentsArray[n] = d.hyperlinkTextSources.itemByID(coupledArrayIDs[n][1]).sourceText.contents;
}


offTopic: Warum werden eigentlich bei dieser Forumssoftware so oft die Auszeichnungstags falsch interpretiert?


als Antwort auf: [#492206]
X