Mercurial > projects > mde
diff mde/lookup/Options.d @ 81:d8fccaa45d5f
Moved file IO code from mde/mergetag to mde/file[/mergetag] and changed how some errors are caught.
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Fri, 29 Aug 2008 11:59:43 +0100 |
parents | ea58f277f487 |
children | ac1e3fd07275 |
line wrap: on
line diff
--- a/mde/lookup/Options.d Thu Aug 07 11:25:27 2008 +0100 +++ b/mde/lookup/Options.d Fri Aug 29 11:59:43 2008 +0100 @@ -24,11 +24,10 @@ import mde.setup.paths; import mde.exception; -import mde.mergetag.Reader; -import mde.mergetag.Writer; -import mde.mergetag.DataSet; -import mde.mergetag.exception; -import mde.mergetag.serialize; +import mde.file.mergetag.Reader; +import mde.file.mergetag.Writer; +import mde.file.mergetag.DataSet; +import mde.file.serialize; import tango.core.Exception : ArrayBoundsException; import tango.util.log.Log : Log, Logger; @@ -134,10 +133,6 @@ */ private const fileName = "options"; void load () { - // Check it exists (if not it should still be created on exit). - // Don't bother checking it's not a folder, because it could still be a block or something. - if (!confDir.exists (fileName)) return; - try { IReader reader; reader = confDir.makeMTReader (fileName, PRIORITY.LOW_HIGH); @@ -148,10 +143,11 @@ else return null; }; reader.read; - } catch (MTException e) { - logger.fatal ("Loading options aborted:"); - logger.fatal (e.msg); - throw new optionsLoadException ("Mergetag exception (see above message)"); + } catch (NoFileException e) { + // Just return. Options file will be created on exit. + } catch (Exception e) { + logger.warn ("Loading options failed: "~e.msg); + logger.warn ("If warning persists, delete the offending file."); // FIXME - delete the bad file somehow } } void save () { @@ -170,19 +166,17 @@ reader.read; } catch (NoFileException) { // No user file exists; not an error. - } catch (MTException e) { + } catch (Exception e) { // Log a message and continue, overwriting the file: - logger.error ("Loading options aborted:"); - logger.error (e.msg); + logger.error ("Loading options aborted: " ~ e.msg); } try { IWriter writer; writer = confDir.makeMTWriter (fileName, ds); writer.write(); - } catch (MTException e) { - logger.error ("Saving options aborted! Reason:"); - logger.error (e.msg); + } catch (Exception e) { + logger.error ("Saving options aborted: "~e.msg); } }