summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/html/k100079.html
blob: 72031fb7be929c8c9ea2c33e183c359feca03388 (plain)
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
<html>
<head>
<title>
Handbuch der Java-Programmierung, 5. Auflage
</title>
</head>
<body>
<a name="startofbody"></a>
<script language="JavaScript" src="hjp4lib.js">
</script>
<script language="JavaScript">
installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100078.html;106,k100078.html;107,k100080.html;108,k100083.html");
</script>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html">&nbsp;Titel&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html">&nbsp;&lt;&lt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100080.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100083.html">&nbsp;&gt;&gt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
<td align="right">Kapitel 12 - Exceptions
</table>
<hr>


<!-- Section -->
<a name="sectlevel2id012001"></a>
<h2>12.1 Grundlagen und Begriffe </h2>
<hr>
<ul>
<li><a href="k100079.html#sectlevel2id012001">12.1 Grundlagen und Begriffe</a>
</ul>
<hr>

<p>
Mit den <i>Exceptions</i> besitzt Java einen Mechanismus zur strukturierten
Behandlung von Fehlern, die w&auml;hrend der Programmausf&uuml;hrung
auftreten. Tritt etwa ein <a name="ixa100716">Laufzeitfehler</a> auf,
weil ein Array-Zugriff au&szlig;erhalb der definierten Grenzen erfolgte
oder weil eine Datei, die ge&ouml;ffnet werden sollte, nicht gefunden
wurde, so gibt es in Java Sprachmittel, die eine systematische Behandlung
solcher Ausnahmen erm&ouml;glichen. 

<p>
Da Exceptions ein relativ neues Feature von Programmiersprachen sind,
ist es sinnvoll, zun&auml;chst die in diesem Zusammenhang verwendeten
Begriffe vorzustellen. Als <i>Exception</i> wird dabei die eigentliche
Ausnahme bezeichnet, die durch ein Programm zur Laufzeit verursacht
werden kann. Das <a name="ixa100717"><i>Ausl&ouml;sen einer Ausnahme</i></a>
wird im Java-Sprachgebrauch als <i>throwing</i> bezeichnet, wir werden
meist die deutsche Bezeichnung <i>ausl&ouml;sen</i> verwenden. Das
<a name="ixa100718"><i>Behandeln einer Ausnahme</i></a>, also die
explizite Reaktion auf das Eintreten einer Ausnahme, wird als <i>catching</i>
bezeichnet. Schlie&szlig;lich werden wir auch die Begriffe <i>Ausnahme</i>
und <i>Exception</i> synonym verwenden. 

<p>
Das Grundprinzip des Exception-Mechanismus in Java kann wie folgt
beschrieben werden: 
<ul>
<li>Ein Laufzeitfehler oder eine vom Entwickler gewollte Bedingung
l&ouml;st eine Ausnahme aus.
<li>Diese kann nun entweder von dem Programmteil, in dem sie ausgel&ouml;st
wurde, behandelt werden, oder sie kann weitergegeben werden.
<li>Wird die Ausnahme weitergegeben, so hat der Empf&auml;nger der
Ausnahme erneut die M&ouml;glichkeit, sie entweder zu behandeln oder
selbst weiterzugeben.
<li>Wird die Ausnahme von keinem Programmteil behandelt, so f&uuml;hrt
sie zum Abbruch des Programms und zur Ausgabe einer Fehlermeldung.
</ul>

<p>
Die folgenden Abschnitte erl&auml;utern die Details des Auftretens,
der Behandlung und der Weitergabe von Ausnahmen. 
<hr>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html">&nbsp;Titel&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
Wesley, Version 5.0.1
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html">&nbsp;&lt;&lt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100080.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100083.html">&nbsp;&gt;&gt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
<td align="right">&copy; 1998, 2007 Guido Kr&uuml;ger &amp; Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>