error handling for bosh.initSettings attempts to offer recovery options if BashSettings.dat and/or BashSettings.dat.bak cannot be read, but it suffers from a few deficiencies:
1) if a problem is detected, it attempts to show a messagebox, but wx.App has not been initialized by that point and the call fails
2) it does not catch ValueErrors, which are the errors actually thrown when there is a format mismatch
3) it does not do similar recovery actions for Table.dat/Table.dat.bak, meaning that even if BashSettings.dat is deleted, the program still would not start due to Table.dat being in the wrong format
ValueError will likely no longer be thrown due to r1513, but the other problems still apply
To solve the first point, I think we need to refactor our initialization:
1) move module-level functional calls into classes or into main() so we can't fail before we enter main
2) initialize wx before anything else
3) display all startup errors graphically
MOVED TO GITHUB: https://github.com/wrye-bash/wrye-bash/issues/178