11
11
import cz .hartrik .sg2 .engine .Platform ;
12
12
import java .io .IOException ;
13
13
import java .io .InputStream ;
14
+ import java .io .PrintWriter ;
15
+ import java .io .StringWriter ;
14
16
import java .nio .file .Path ;
15
17
import java .util .Locale ;
16
18
import java .util .Map ;
@@ -42,7 +44,8 @@ public class Main extends javafx.application.Application {
42
44
43
45
@ Override
44
46
public void start (Stage stage ) throws Exception {
45
- initLogging ();
47
+ loadLoggingConfig ();
48
+ initGlobalExceptionHandler ();
46
49
processParameters (getParameters ());
47
50
48
51
setUserAgentStylesheet (STYLESHEET_MODENA );
@@ -61,7 +64,7 @@ public void start(Stage stage) throws Exception {
61
64
frame .show ();
62
65
}
63
66
64
- private void initLogging () {
67
+ private void loadLoggingConfig () {
65
68
InputStream inputStream = getClass ().getResourceAsStream (LOGGING_CONFIG );
66
69
67
70
try {
@@ -72,6 +75,17 @@ private void initLogging() {
72
75
}
73
76
}
74
77
78
+ private void initGlobalExceptionHandler () {
79
+ Thread .setDefaultUncaughtExceptionHandler ((t , e ) -> {
80
+ StringWriter sw = new StringWriter ();
81
+ PrintWriter pw = new PrintWriter (sw );
82
+ e .printStackTrace (pw );
83
+ String stackTrace = sw .toString (); // stack trace as a string
84
+
85
+ Logger .getGlobal ().severe ("Uncatched exception:\n " + stackTrace );
86
+ });
87
+ }
88
+
75
89
private void processParameters (Parameters parameters ) {
76
90
Map <String , String > map = parameters .getNamed ();
77
91
0 commit comments