Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #12951
| From | Wanja Gayk <brixomatic@yahoo.com> |
|---|---|
| Newsgroups | de.comp.lang.java |
| Subject | Re: Rekursion bricht nicht ab |
| Date | 2016-04-23 16:13 +0200 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <MPG.31859c2ad1741b659896b3@news.aioe.org> (permalink) |
| References | (2 earlier) <dmv3g8Fngq5U2@mid.individual.net> <dmv77lFoggiU1@mid.individual.net> <dmvd9oFq327U1@mid.individual.net> <MPG.31789f5985a68ae9896b0@news.aioe.org> <dn80blF210oU1@mid.individual.net> |
In article <dn80blF210oU1@mid.individual.net>, Christian H. Kuhn (qno-
news@qno.de) says...
>
> Am 13.04.2016 um 19:25 schrieb Wanja Gayk:
> > Der Overhead vom Exceptionhandling ist jedenfalls in 99.9999999999999%
> > aller Fälle kein Problem.
>
> Ich habe visualvm dann mal eingesetzt. Mann, habe ich gelacht. Je
> nachdem, ob ich dem Profiler oder dem Sampler glaube, verbringe ich
> 65?95% der Rechenzeit im Konstruktor von drei verschiedenen Exceptions,
> wobei zwei etwa gleich viel Zeit brauchen und die dritte ein Viertel
> davon. Und es sieht so aus, dass es tatsächlich die Aufrufe sind und
> weder super(String) noch die Erstellung des String.
Das klingt ganz danach, als ob du die Exceptions nicht als "Ausnahme"
benutzt, sondern Mittel für den regulären Kontrollfluss. Wenn Exceptions
zur Regel werden, dann passt der Name "Exception" eigentlich nicht mehr.
Was du dort siehst, ist also in etwa so, als ob du ein extra
Rückgabeobjekt mit Stacktrace erzeugst, immer wenn du z.B. kein
Suchergebnis findest. Das ist eigentlich nicht das, wofür man eine
Exception nutzen sollte.
Eine Exception ist eigentlich immer eine Sonderbedingung, Beispiel:
Du hast ein Handelsprogramm, bei dem du checkst, ob die Ware auf Lager
ist und wenn ja, wird es dem Kunden abgeboten, der erteilt dann den
Auftrag die Ware vom Lager zu nehmen und ihm zu schicken. Eine Ausnahme
baust du für den Fall ein, dass zwischen dem Bestandscheck und dem
tatsächlichen Auftrag ein anderer Auftrag dazwischen kam, der die Ware
vom Lager nahm. Damit würde es beim Auftrag eine Art OutOfStockException
geben und du müsstest dem Kunden mitteilen: Sorry, zwischen unserem
Angebot und deinem Auftrag hat ein anderer Kunde das Zeug gekauft und
ihm anbieten das Zeug mit etwas Wartezeit trotzdem zu bestellen oder die
Transaktion abzubrechen.
Aber für so Sachen, wie eine Suche, wo sehr oft zu erwarten ist, dass du
nicht findest, was du suchst, ist eine Exception (Ausnahme!) nicht das
richtige Mittel.
Dort gibt man zum Beispiel sowas, wie ein "Optional" zurück, also:
public <X extends NamedItem> Optional<X> searchByName(Iterable<X> xs,
String name){
for(X x : xs){
if(x != null && Utils.equals(x.getName(), name)){
return Optional.of(x);
}
}
return Optional.empty();
}
Oder eben, wenn man den Konstruktor des Optionals umgehen muss, das
Objekt selbst oder null.
Gruß,
-Wanja-
--
..Alesi's problem was that the back of the car was jumping up and down
dangerously - and I can assure you from having been teammate to
Jean Alesi and knowing what kind of cars that he can pull up with,
when Jean Alesi says that a car is dangerous - it is. [Jonathan Palmer]
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-08 23:28 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-09 16:13 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-10 15:41 +0200
Re: Rekursion bricht nicht ab Peter Büttner <not_for_mail_peb@gmx.net> - 2016-04-10 16:45 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-10 18:28 +0200
Re: Rekursion bricht nicht ab Wanja Gayk <brixomatic@yahoo.com> - 2016-04-13 19:25 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-13 21:56 +0200
Re: Rekursion bricht nicht ab Wanja Gayk <brixomatic@yahoo.com> - 2016-04-23 16:13 +0200
Re: Rekursion bricht nicht ab Wanja Gayk <brixomatic@yahoo.com> - 2016-04-23 16:13 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-23 17:31 +0200
Re: Rekursion bricht nicht ab Wanja Gayk <brixomatic@yahoo.com> - 2016-04-25 00:53 +0200
Re: Rekursion bricht nicht ab Wanja Gayk <brixomatic@yahoo.com> - 2016-04-25 00:56 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-23 19:22 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-14 00:42 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-14 09:20 +0200
Re: Rekursion bricht nicht ab Christoph Schneegans <Christoph@Schneegans.de> - 2016-04-14 18:47 +0200
Re: Rekursion bricht nicht ab Wanja Gayk <brixomatic@yahoo.com> - 2016-04-23 16:13 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-25 12:07 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-25 17:38 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-25 22:36 +0200
Re: Rekursion bricht nicht ab Wanja Gayk <brixomatic@yahoo.com> - 2016-04-28 08:26 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-10 22:15 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-12 15:46 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-12 18:32 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-13 20:44 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-14 12:07 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-23 13:35 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-23 14:57 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-25 23:05 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-26 01:16 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-23 16:05 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-25 12:48 +0200
Re: Rekursion bricht nicht ab v_borchert@despammed.com (Volker Borchert) - 2016-04-10 06:07 +0000
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-10 15:40 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-11 11:21 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-12 15:57 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-12 18:28 +0200
Re: Rekursion bricht nicht ab "Christian H. Kuhn" <qno-news@qno.de> - 2016-04-12 23:36 +0200
Re: Rekursion bricht nicht ab Patrick Roemer <sangamon@netcologne.de> - 2016-04-25 21:42 +0200
csiph-web