| |||||||
Das Thema "IOExection Ereignis abfragen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 07.12.2011
Beiträge: 128
Abgegebene Danke: 15
Erhielt 14 Danke für 14 Beiträge
| ich möchte auf eine Exception, je nach Auslöser, unterschiedlich reagieren. Wie kann ich das bewerkstelligen? Code: try{
}catch(IOException e){
Log.e("Test",e.toString); // So kann ich den Text des Auslösers ausgeben
// ich möchte aber so etwas in der Art
switch (e.code){
cast e.CONNECTION_REFUSED:
....
break;
}
} ciao Martin |
| | |
| | #2 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Desire HD Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
|
Meinst du sowas: PHP-Code:
__________________ Tutorials: - Getting Started with the Android NDK(en) - Zuverlässigkeit und Flußkontrolle bei der Datenübertragung in Multiplayer Games (de) - ExpandableListView mit X Leveln(de) |
| | |
| | #3 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 07.12.2011
Beiträge: 128
Abgegebene Danke: 15
Erhielt 14 Danke für 14 Beiträge
|
Ich bekomme ja auf jeden Fall eine IOException. Ich möchte aber auf die verschiedenen IOExceptions unterschiedlich reagieren. Ein Möglichkeit währe den String zu vergleichen: Code: if (e.toString == "Fehler Text") {
} |
| | |
| | #4 (permalink) |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
|
Verschiedene IOExcepction Unterklassen? wenn Du das meinst, dann "catched" du zuerst die spezifischeren bis hoch zur allgemeinen IOException. catch(MyIOException1 e){ // do something } catch(MyIOException2 e){ // do something } catch(IOException e){ // do something }
__________________ Samsung Galaxy S mit Android 4.03 RC4 ICSSGS Acer Iconia A100 mit Android 3.2 Vodafone 858 smart mit Android 2.2.1 Geändert von mradlmaier (11.12.2011 um 15:56 Uhr) |
| | |
| | #6 (permalink) |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
|
Hängt natürlich davon ab, ob die Methode die im try-Block steht, entsprechende Subklassen von IOException "throwed" Wenn das dein eigener Code ist kannst Du deine eigenen Exceptions definieren, throwen, und catchen.... wenn nicht, hast Du Pech gehabt. Jedenfalls ist es Beste Praxis, für verschiedene Ausnahmen entsprechende Klassen zu definieren, statt Fehlertexte abzufragen. Guck Dir mal Exception Handling in Java an - das ist eines der eleganteren Features von Java, es lohnt sich.
__________________ Samsung Galaxy S mit Android 4.03 RC4 ICSSGS Acer Iconia A100 mit Android 3.2 Vodafone 858 smart mit Android 2.2.1 |
| | |
| | #7 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 07.12.2011
Beiträge: 128
Abgegebene Danke: 15
Erhielt 14 Danke für 14 Beiträge
|
Ja werde ich machen Danke erstmal. Ich baue eine Verbindung per Bluetooth auf und wenn dabei etwas schief geht bekomme ich die Exception. Und je nachdem was schief geht möchte ich unterschiedlich reagieren. |
| | |
| | #8 (permalink) | |
| Android-Hilfe.de Mitglied Registriert seit: 07.12.2011
Beiträge: 128
Abgegebene Danke: 15
Erhielt 14 Danke für 14 Beiträge
| Zitat:
Ich habe mir jetzt mal die Exception behandlung näher angeschaut aber nicht das gefunden was ich haben möchte. Die Unterklassen abzufangen währe schon gut aber wenn ich nichts übersehen habe gibt es für meinen Fall keine Unterklasse. Wie gesagt es geht bei mir um Bluetooth ich rufe die Methode "connect()" von "BluetoothSocket" auf. Ich bekomme dann die IOException "java.io.IOException: Service discovery failed". Habe ich die Unterklasse dafür wirklich übersehen? Was haltet ihr davon den Hash des Exceptionstrings zu verwenden? Code: try{
clientSocket.connect();
}catch (IOException e){
if (e.getMessage().hashCode() == "Service discovery failed".hashCode()){
// do what ever
}
} Geändert von snowman2 (16.12.2011 um 20:20 Uhr) | |
| | |
| | #9 (permalink) | |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
| Zitat:
Equals and Hash Code in Java Bin überrascht das es da keine spezielle Exception gibt. Bleibt die Möglichkeit das Du eine eigene Exception-Unterklasse dafürschreibst.
__________________ Samsung Galaxy S mit Android 4.03 RC4 ICSSGS Acer Iconia A100 mit Android 3.2 Vodafone 858 smart mit Android 2.2.1 | |
| | |
| | #10 (permalink) | ||
| Android-Hilfe.de Mitglied Registriert seit: 07.12.2011
Beiträge: 128
Abgegebene Danke: 15
Erhielt 14 Danke für 14 Beiträge
| Zitat:
Zitat:
Ich habe jetzt mal probiert ein paar von den Unterklassen zu catchen aber es wird keine von diesen ausgelöst, sondern nur die IOException. IOException ist wohl eher für Dateioperationen und Web-Operationen ausgelegt. Geändert von snowman2 (16.12.2011 um 23:28 Uhr) | ||
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Ereignis Kalenderwoche aus dem Kalender ausblenden | minimaltrackhunter | Sony Ericsson Xperia Arc Forum | 1 | 20.10.2011 15:11 |
| CountDownTimer im onTick()-Ereignis beenden | Fonsi | Android App Entwicklung | 2 | 29.09.2011 17:46 |
| Kalenderfunktion Ganztägiges Ereignis / Bug? | Sidde | HTC Legend Forum | 2 | 10.08.2011 21:37 |
| Auswahl für Wiederkehrendes Ereignis (fehlt) | Tigerwuff | Samsung Galaxy S (I9000) Forum | 9 | 07.03.2011 07:24 |
| Ereignis-Symbol | charlynn | HTC Desire Forum | 6 | 14.12.2010 14:00 |