Skip to content

Commit a80b399

Browse files
committed
walletdb: Log additional exception error messages for corrupted wallets
1 parent 1772517 commit a80b399

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/wallet/walletdb.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1194,9 +1194,15 @@ DBErrors WalletBatch::LoadWallet(CWallet* pwallet)
11941194

11951195
// Load decryption keys
11961196
result = std::max(LoadDecryptionKeys(pwallet, *m_batch), result);
1197-
} catch (...) {
1197+
} catch (std::runtime_error& e) {
11981198
// Exceptions that can be ignored or treated as non-critical are handled by the individual loading functions.
11991199
// Any uncaught exceptions will be caught here and treated as critical.
1200+
// Catch std::runtime_error specifically as many functions throw these and they at least have some message that
1201+
// we can log
1202+
pwallet->WalletLogPrintf("%s\n", e.what());
1203+
result = DBErrors::CORRUPT;
1204+
} catch (...) {
1205+
// All other exceptions are still problematic, but we can't log them
12001206
result = DBErrors::CORRUPT;
12011207
}
12021208

0 commit comments

Comments
 (0)