2 回答

TA貢獻1725條經驗 獲得超8個贊

TA貢獻1829條經驗 獲得超7個贊
這應該做你想要的,盡管假設每條消息只有一個。
public class someClass {
private static final Pattern idPattern = Pattern.compile("<.*>");
public static void main(String[] args) {
doStuff();
}
public static void doStuff(){
try{
throwNPE();
} catch (NullPointerException ex){
String message = ex.getMessage();
if(idPattern.matcher(message).matches()){
System.out.println(getId(message));
}
}
}
public static String getId(String message){
String[] messageParts = message.split("<|>");
if(messageParts.length > 1){
return messageParts[1];
}else{
throw new IllegalArgumentException();
}
}
public static void throwNPE(){
throw new NullPointerException("<123>");
}
}
你只需要 doStuff() 和 getId(字符串) 作為你的示例(你可以刪除靜態),但是想要提供一個工作示例。
任何必要的解釋,請詢問。祝你好運!
添加回答
舉報