File: fehlerbehandlung.htm

package info (click to toggle)
selfhtml 8.1.2-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, jessie, jessie-kfreebsd, squeeze, stretch, wheezy
  • size: 28,076 kB
  • ctags: 4,161
  • sloc: xml: 614; java: 375; makefile: 8
file content (146 lines) | stat: -rw-r--r-- 10,740 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>SELFHTML: JavaScript / Anwendungsbeispiele / Fehlerbehandlung mit dem Event-Handler onerror</title>
<link rel="stylesheet" type="text/css" href="../../src/selfhtml.css">
<meta name="description"    content="Wie Sie Fehler in JavaScriptprogrammen abfangen knnen.">
<meta name="keywords"       content="SELFHTML, JavaScript, Fehler, Error, onerror">
<meta name="author"         content="Redaktion SELFHTML, selfhtml81@selfhtml.org">
<meta name="robots"         content="noindex, nofollow">
<meta name="DC.Publisher"   content="SELFHTML e. V.">
<meta name="DC.Date"        content="2005-08-22T21:21:39+02:00">
<meta name="DC.Identifier"  content="http://de.selfhtml.org/javascript/beispiele/fehlerbehandlung.htm">
<meta name="DC.Language"    content="de">
<meta name="DC.Rights"      content="../../editorial/copyright.htm">
<meta name="DC.Date.created" content="2001-10-27T08:00+01:00">
<meta name="SELF.Pagetype"  content="page">
<link rel="alternate" type="application/atom+xml" title="SELFHTML-Weblog (Atom, gesamt)" href="http://aktuell.de.selfhtml.org/weblog/atom-feed">
<link rel="alternate" type="application/rss+xml" title="SELFHTML-Weblog (RSS, Auszge)" href="http://aktuell.de.selfhtml.org/weblog/rss-feed">
<link rel="shortcut icon" type="image/x-icon" href="../../src/favicon.ico">
<link rel="author" title="Impressum" href="../../editorial/impressum.htm">
<link rel="contents" title="Inhaltsverzeichnis" href="../../navigation/inhalt.htm">
<link rel="index" title="Stichwortverzeichnis" href="../../navigation/stichwort.htm">
<link rel="search" title="Suche" href="../../navigation/suche/index.htm">
<link rel="help" title="Hilfe" href="../../editorial/index.htm">
<link rel="copyright" title="Urheberrecht" href="../../editorial/copyright.htm">
<link rel="top" title="SELFHTML" href="../../index.htm">
<link rel="up" title="Anwendungsbeispiele" href="index.htm">
<link rel="next" title="Fehlerbehandlung mit dem try..catch-Statement" href="fehlerbehandlung_try_catch.htm">
<link rel="prev" title="Verweisliste als Auswahlliste" href="verweisliste.htm">
<link rel="first" title="Zwei Frames gleichzeitig ndern" href="zweiframes.htm">
<link rel="last" title="nderungen der Fenstergre berwachen" href="fensterueberwachen.htm">
</head>
<body>

<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td colspan="2" class="nav"><a class="an" name="top"><img src="../../src/refkap.gif" width="16" height="13" alt="Teil von"></a> <a href="../../index.htm">SELFHTML</a>/<a href="../../navigation/index.htm" target="_parent" class="navh">Navigationshilfen</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="../index.htm">JavaScript/DOM</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="index.htm">Anwendungsbeispiele</a></td>
</tr>
<tr>
<td class="doc" width="110"><a href="../../index.htm"><img src="../../src/logo.gif" width="106" height="109" border="0" alt="SELFHTML"></a></td>
<td class="docbot" width="100%"><h1 class="ph1">Fehlerbehandlung mit dem Event-Handler onerror</h1></td>
</tr>
<tr>
<td class="doctop">
<img src="../../src/dokx.gif" width="30" height="20" vspace="6" alt="Informationsseite">
</td>
<td valign="top" nowrap="nowrap">
<p>
<img src="../../src/down.gif" width="14" height="10" alt="nach unten">&nbsp;<a href="#hinweise">Hinweise zu diesen Beispielen</a><br>
<img src="../../src/down.gif" width="14" height="10" alt="nach unten">&nbsp;<a href="#quelltext">Quelltext mit Erluterungen</a><br>
</p>

<p><img src="../../src/dokf.gif" width="15" height="10" alt="Beispiel-Seite">&nbsp;<a href="anzeige/fehlerbehandlung.htm">Anzeigebeispiel: So sieht's aus</a></p>
</td>
</tr><tr><td colspan="2" class="doc">&nbsp;<a href="#bottom"><img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten"></a>&nbsp;</td></tr>
</table>



<h2><a class="an" name="hinweise">Hinweise zu diesem Beispiel</a></h2>

<p>Der Sprachumfang von JavaScript erlaubt es mittlerweile, umfangreiche Anwendungen zu erstellen. Dynamische Web-Seiten enthalten teilweise umfangreiche Scripts, die in ihren Ablufen auf etliche Variablen zurckgreifen. Dabei knnen sich sich leicht unkontrollierbare Werte und Zustnde im Programmablauf einschleichen, zum Beispiel auch durch nicht einkalkuliertes Anwenderverhalten. Seit der JavaScript-Version 1.1 steht Ihnen mit dem Event-Handler <code>onerror</code> ein Werkzeug zur zur Verfgung, um innerhalb des Scripts Fehler abzufangen und gezielt darauf zu reagieren.</p>

<p>Zur Unterdrckung von Fehlermeldungen, die zur Laufzeit eines Scripts entstehen, notieren Sie im Kopf der Datei <code>window.onerror</code>. Als Wert weisen Sie den Namen einer Funktion zu, welche die Fehlerbehandlung ausfhrt. Der Rckgabewert der Funktion muss <code>true</code> sein. Damit haben Sie Ihre eigene Fehlerbehandlung.</p>

<p>Der Fehlerbehandlungs-Funktion knnen Sie bis zu 3 optionale Parameter bergeben:<br>
<b>1.</b> <i>Nachricht</i>: enthlt die Fehlerbeschreibung des Fehlers<br>
<b>2.</b> <i>Datei</i>: enthlt den URI der fehlerverursachenden Datei<br>
<b>3.</b> <i>Zeile</i>: enthlt die Zeile in der der Fehler auftritt</p>

<p>Diese Art der Fehlerkontrolle knnen Sie fr Netscape 4.x und Internet Explorer ab Version 4.x verwenden. Netscape 6 ist nicht in der Lage, die Parameter vollstndig zu interpretieren. Er speichert jeweils im ersten Parameter das auslsende Eventobjekt. Opera interpretiert den an das Fensterobjekt gebundenen Event-Handler <code>window.onerror</code> nicht.</p>

<p>Bercksichtigen Sie, dass Sie nur logische Fehler berwachen und unterdrcken knnen, die whrend der Laufzeit der Scripts entstehen. Syntaxfehler, wie z.B. fehlende Klammern usw. sind damit nicht abfangbar.</p>



<p class="doc"><a href="#top"><img src="../../src/up.gif" width="14" height="10" border="0" alt="nach oben"></a><a href="#bottom"><img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten"></a></p>



<h2><img src="../../src/js11.gif" width="30" height="30" alt="JavaScript 1.1" title="JavaScript 1.1"><img src="../../src/netsc3.gif" width="30" height="30" alt="Netscape 3.0" title="Netscape 3.0"><img src="../../src/msie4.gif" width="30" height="30" alt="MS IE 4.0" title="MS IE 4.0"><img src="../../src/ffox1.gif" width="30" height="30" alt="Mozilla Firefox 1" title="Mozilla Firefox 1">&nbsp;<a class="an" name="quelltext">Quelltext mit Erluterungen</a></h2>

<p>Das Beispiel zeigt eine einfach Variante der Fehlerbehandlung. Am Ende des Script-Bereichs wird eine Funktion aufgerufen, die nicht existiert.</p>

<h3 class="xmp">Beispiel:</h3>

<p><img src="../../src/dokf.gif" width="15" height="10" alt="Beispiel-Seite">&nbsp;<a href="anzeige/fehlerbehandlung.htm">Anzeigebeispiel: So sieht's aus</a></p>

<pre>
&lt;html&gt;&lt;head&gt;&lt;title&gt;Test&lt;/title&gt;
&lt;script type="text/javascript"&gt;
window.onerror = Fehlerbehandlung;

function Fehlerbehandlung (Nachricht, Datei, Zeile) {
  Fehler = "Fehlermeldung:\n" + Nachricht + "\n" + Datei + "\n" + Zeile;
  zeigeFehler();
  return true;
}

function zeigeFehler () {
  alert(Fehler);
}

nichtda();
&lt;/script&gt;
&lt;/head&gt;&lt;body&gt;
&lt;a href="javascript:zeigeFehler()"&gt;Fehler&lt;/a&gt;&lt;br&gt;
&lt;/body&gt;&lt;/html&gt;
</pre>

<h3 class="xpl">Erluterung:</h3>

<p>Beim Einlesen der Datei wird mit <code>window.onerror = Fehlerbehandlung</code> angewiesen, im Fehlerfall die Funktion <code>Fehlerbehandlung()</code> aufzurufen. Dieses Ereignis tritt im Beispiel am Ende des Script-Bereichs ein, wo versucht wird, die nichtvorhandene Funktion <code>nichtda()</code> aufzurufen.</p>

<h4>Die Funktion Fehlerbehandlung()</h4>

<p>Die Funktion speichert mit <img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="../sprache/operatoren.htm#zeichenkettenverknuepfung">Zeichenkettenverknpfung</a> die automatisch bergebenen Parameter in der Variablen <code>Fehler</code>. Dann ruft sie im Beispiel die Funktion <code>zeigeFehler()</code> auf. Diese Funktion dient im Beispiel lediglich dazu, den Fehler zu Demonstrationszwecken auszugeben. Mit <code>return true</code> wird erreicht, dass der Fehler im Browser nicht angezeigt wird. Mit dem Rckgabewert <code>false</code> wrden Sie bewirken, dass der Browser den Fehler anmeckern wrde.</p>

<p>In einer komplexeren Anwendung htte die Funktion <code>Fehlerbehandlung()</code> also alle Mglichkeiten, auf den Fehler zu reagieren. Sie knnte beispielsweise die Zeichenkette des bergebenen Parameters <code>Nachricht</code> untersuchen, um herauszufinden, welcher Fehler genau aufgetreten ist. Je nach Situation knnte eine solche Funktion bewirken, dass das Script zu einem frheren Punkt im Programmablauf zurckspringt, Variablen zurcksetzt, den Cursor in ein bestimmtes Formularfeld setzt usw.</p>



<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr><td colspan="2" class="doc">
&nbsp;<a href="#top"><img src="../../src/up.gif" width="14" height="10" border="0" alt="nach oben"></a>
</td></tr>
<tr><td class="doc"><a href="fehlerbehandlung_try_catch.htm"><img src="../../src/next.gif" width="10" height="10" border="0" hspace="10" alt="weiter"></a></td>
<td width="100%"><img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="fehlerbehandlung_try_catch.htm">Fehlerbehandlung mit dem try..catch-Statement</a>
</td></tr>
<tr>
<td class="doc"><a href="verweisliste.htm"><img src="../../src/prev.gif" width="10" height="10" border="0" hspace="10" alt="zurck"></a></td>
<td><img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="verweisliste.htm">Verweisliste als Auswahlliste</a>
</td>
</tr>
<tr><td colspan="2" class="doc">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="nav"><a class="an" name="bottom"><img src="../../src/refkap.gif" width="16" height="13" alt="Teil von"></a> <a href="../../index.htm">SELFHTML</a>/<a href="../../navigation/index.htm" target="_parent" class="navh">Navigationshilfen</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="../index.htm">JavaScript/DOM</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="index.htm">Anwendungsbeispiele</a></td>
</tr>
</table>

<p>&copy; 2007 <img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="../../editorial/impressum.htm">Impressum</a></p>

</body>
</html>