Как я могу захватить system.err и отобразить сообщение пользователю, а не отображать окно терминала?Java: Capture System.err
Класс, содержащий строку, НЕ допускается изменять. Heres код:
Вступление Класс:
public Entry(String paramString1, String paramString2, String paramString3, String paramString4, String paramString5)
{
this.firstName = paramString1;
this.lastName = paramString2;
this.street = paramString3;
this.town = paramString4;
if (paramString5.matches("[A-Z]{2}[0-9]{1,2} [0-9]{1,2}[A-Z]{2}")) {
this.postCode = paramString5;
} else {
System.err.printf("Bad postcode: '%s'\n", new Object[] { paramString5 });
this.postCode = "???";
}
}
AddressBook Класс:
public String add(Entry paramEntry)
{
if (paramEntry == null)
return "Error: null entry";
if (this.data.contains(paramEntry)) {
return "Error: this entry already in the book";
}
boolean bool = this.data.add(paramEntry);
if (bool) {
return " entry added";
}
return "entry could not be added";
}
расширенного класса запись:
public class Personal extends Entry
{
private String dob;
public Personal(String firstName, String lastName, String street, String town, String postcode, String theDOB)
{
super(firstName, lastName, street, town, postcode);
dob = theDOB;
}
Текущий вызов, чтобы добавить запись из класса GUI:
entry = Personal(firstName, lastName, street, town, postcode.toUpperCase(), dob);
message = addressbook.add(entry);
Если я вхожу в плохой почтовый индекс, в настоящее время я получаю окно терминала с надписью «Bad poscode:», после чего создается запись с ??? как почтовый индекс. Я хочу, чтобы пользователь мог запросить другой ввод без добавления записи. Я не знаю, как это сделать, но без изменения класса Entry (не разрешено изменять классы Entry или AddressBook).
* «НЕ разрешено изменять» * Говорит кто? –
@AndrewThompson классы были предоставлены преподавателем, и вам не разрешили каким-либо образом их модифицировать – ToniHopkins
Надеюсь, это всего лишь тестовое приложение. Обработка ошибок таким образом, вероятно, является самым худшим решением, которое я видел до сих пор ... – home