From ddc3786b442cb964bbadc72014c9e5c42234ea7b Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 2 Dec 2014 14:26:34 -0500 Subject: [PATCH] v0.2.3: changed how some of the code deals with exception. More visible errors, but better error reporting. These methods should never fail for any reason other than an IOException anyway, so the intent here is that if they do fail for another reason, it is worth one user's game session so that I can get a bug report. --- src/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java | 8 ++++---- .../shatteredpixeldungeon/GamesInProgress.java | 7 ++++--- .../shatteredpixel/shatteredpixeldungeon/Rankings.java | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java b/src/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java index f5024782c..17d6f3eb2 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java @@ -382,9 +382,9 @@ public class Dungeon { observe(); try { saveAll(); - } catch (Exception e) { - //TODO: I need to add analytics code to this or something. - //Silent failure is really bad, don't want to interrupt the user but I do want to know if this fails. + } catch (IOException e) { + /*This only catches IO errors. Yes, this means things can do wrong, and they can go wrong catastrophically. + But when they do the user will get a nice 'report this issue' dialogue, and I can fix the bug.*/ } } @@ -527,7 +527,7 @@ public class Dungeon { Bundle.write( bundle, output ); output.close(); - } catch (Exception e) { + } catch (IOException e) { GamesInProgress.setUnknown( hero.heroClass ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/GamesInProgress.java b/src/com/shatteredpixel/shatteredpixeldungeon/GamesInProgress.java index c93f5c63a..f5eff1433 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/GamesInProgress.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/GamesInProgress.java @@ -17,11 +17,12 @@ */ package com.shatteredpixel.shatteredpixeldungeon; -import java.util.HashMap; - import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; import com.watabou.utils.Bundle; +import java.io.IOException; +import java.util.HashMap; + public class GamesInProgress { private static HashMap state = new HashMap(); @@ -41,7 +42,7 @@ public class GamesInProgress { info = new Info(); Dungeon.preview( info, bundle ); - } catch (Exception e) { + } catch (IOException e) { info = null; } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java b/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java index 65c798bb2..899a508d3 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java @@ -110,7 +110,7 @@ public enum Rankings { OutputStream output = Game.instance.openFileOutput( RANKINGS_FILE, Game.MODE_PRIVATE ); Bundle.write( bundle, output ); output.close(); - } catch (Exception e) { + } catch (IOException e) { } } @@ -137,7 +137,7 @@ public enum Rankings { totalNumber = records.size(); } - } catch (Exception e) { + } catch (IOException e) { } }