@@ -2084,26 +2084,28 @@ boolean getGuiLoginData(final Properties props, final UnaryOperator<Properties>
20842084 private void connectToDatabase () throws XMLDBException {
20852085 try {
20862086 connect ();
2087+ } catch (final XMLDBException ex ) {
2088+ handleConnectException (ex , ex );
20872089 } catch (final Exception ex ) {
2088- final String message = ex .getMessage () != null ? ex .getMessage () : ex .getClass ().getName ();
2089- if (options .startGUI && isRetryableError (message )) {
2090- if (frame != null ) {
2091- frame .setStatus ("Connection to database failed; message: " + message );
2092- }
2093- if (ex instanceof XMLDBException xe ) {
2094- throw xe ;
2095- } else {
2096- throw new XMLDBException (ErrorCodes .VENDOR_ERROR , message , ex );
2097- }
2090+ handleConnectException (new XMLDBException (ErrorCodes .VENDOR_ERROR , ex .getMessage (), ex ), ex );
2091+ }
2092+ }
20982093
2099- }
2100- if (options .startGUI && frame != null ) {
2094+ private void handleConnectException (final XMLDBException toThrow , final Exception original ) throws XMLDBException {
2095+ final String message = original .getMessage () != null ? original .getMessage () : original .getClass ().getName ();
2096+ if (options .startGUI && isRetryableError (message )) {
2097+ if (frame != null ) {
21012098 frame .setStatus ("Connection to database failed; message: " + message );
2102- } else {
2103- consoleErr ("Connection to database failed; message: " + message , ex );
21042099 }
2105- System .exit (SystemExitCodes .CATCH_ALL_GENERAL_ERROR_EXIT_CODE );
2100+ throw toThrow ;
2101+ }
2102+
2103+ if (options .startGUI && frame != null ) {
2104+ frame .setStatus ("Connection to database failed; message: " + message );
2105+ } else {
2106+ consoleErr ("Connection to database failed; message: " + message , original );
21062107 }
2108+ System .exit (SystemExitCodes .CATCH_ALL_GENERAL_ERROR_EXIT_CODE );
21072109 }
21082110
21092111 /**
0 commit comments