public void uncaughtException(Thread t, Throwable e) {
String message = e.getMessage();
String threadName = t.getName();
int startInd = message.indexOf(threadName);
String startSubstr = message.substring(0, startInd);
int endInd = message.indexOf(" ", startInd);
String endSubstr = message.substring(endInd, message.length()-1);
int insertLength = threadName.length();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < insertLength; i++) {
stringBuilder.append("*");
}
String result = startSubstr + stringBuilder.toString() + endSubstr;
System.out.println(result);
// "Thread-0" должно быть заменено на "********".
// "Thread-4321" должно быть заменено на "***********".
}
В чём ещё может крыться проблема?package com.javarush.task.task25.task2511;
public class Test extends Thread {
protected Thread.UncaughtExceptionHandler handler;
public Test() {
this.handler = new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
String a = "Thread";
String message = e.getMessage();
int startInd = message.indexOf(a);
String startSubstr = message.substring(0, startInd);
int endInd = message.indexOf(" ", startInd);
String endSubstr = message.substring(endInd, message.length()-1);
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < a.length(); i++) {
stringBuilder.append("*");
}
String result = startSubstr + stringBuilder.toString() + endSubstr;
System.out.println(result);
}
};
}
@Override
public void run() {
try {
throw new Exception();
} catch (Exception e) {
Thread currentThread = Thread.currentThread();
handler.uncaughtException(currentThread, new Exception("Blah " + currentThread.getName() + " blah-blah-blah", e));
}
}
public static void main(String[] args) {
// String a = "Thread";
// String message = "Blah " + a + " blah-blah-blah";
// int startInd = message.indexOf(a);
// String startSubstr = message.substring(0, startInd);
// int endInd = message.indexOf(" ", startInd);
// String endSubstr = message.substring(endInd, message.length()-1);
// StringBuilder stringBuilder = new StringBuilder();
// for (int i = 0; i < a.length(); i++) {
// stringBuilder.append("*");
// }
// String result = startSubstr + stringBuilder.toString() + endSubstr;
// System.out.println(result);
}
}