public class Main
implements Thread.
UncaughtExceptionHandler {
public static void main
(String[] args
) { Main main=new Main();
Thread childThread
=new ChildThread
(); childThread.start();
childThread.setUncaughtExceptionHandler(main);
for(int i=0; i < 100; i ++) {
try {
//System.out.println("Main thread, loop "+i);
}
break;
}
}
}
System.
out.
println("We are in " + Thread.
currentThread().
getClass().
getName() + " and this is correct!"); System.
out.
println("Caught thread "+t.
getClass().
getName()+" - we're back in main thread! (this is fucking lie)"); }
}
class ChildThread
extends Thread {
@Override
public void run() {
int j=0;
while(true) {
try {
System.
out.
println("Child thread, loop "+j
++); if(j>=10) {
}
}
break;
}
}
}
}
cHVibGljIGNsYXNzIE1haW4gaW1wbGVtZW50cyBUaHJlYWQuVW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyIHsKCnB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIE1haW4gbWFpbj1uZXcgTWFpbigpOwogICAgVGhyZWFkIGNoaWxkVGhyZWFkPW5ldyBDaGlsZFRocmVhZCgpOwogICAgY2hpbGRUaHJlYWQuc3RhcnQoKTsKICAgIGNoaWxkVGhyZWFkLnNldFVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcihtYWluKTsKICAgIGZvcihpbnQgaT0wOyBpIDwgMTAwOyBpICsrKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CiAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJNYWluIHRocmVhZCwgbG9vcCAiK2kpOwogICAgICAgIH0KICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQoKcHVibGljIHZvaWQgdW5jYXVnaHRFeGNlcHRpb24oVGhyZWFkIHQsIFRocm93YWJsZSBlKSB7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldlIGFyZSBpbiAiICsgVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDbGFzcygpLmdldE5hbWUoKSArICIgYW5kIHRoaXMgaXMgY29ycmVjdCEiKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IHRocmVhZCAiK3QuZ2V0Q2xhc3MoKS5nZXROYW1lKCkrIiAtIHdlJ3JlIGJhY2sgaW4gbWFpbiB0aHJlYWQhICh0aGlzIGlzIGZ1Y2tpbmcgbGllKSIpOwogICAgfQp9CgpjbGFzcyBDaGlsZFRocmVhZCBleHRlbmRzIFRocmVhZCB7CgpAT3ZlcnJpZGUKcHVibGljIHZvaWQgcnVuKCkgewogICAgaW50IGo9MDsKICAgIHdoaWxlKHRydWUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDaGlsZCB0aHJlYWQsIGxvb3AgIitqKyspOwogICAgICAgICAgICBpZihqPj0xMCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlRlc3QhIik7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogIH0KfQo=
Child thread, loop 0
Child thread, loop 1
Child thread, loop 2
Child thread, loop 3
Child thread, loop 4
Child thread, loop 5
Child thread, loop 6
Child thread, loop 7
Child thread, loop 8
Child thread, loop 9
We are in ChildThread and this is correct!
Caught thread ChildThread - we're back in main thread! (this is fucking lie)