Есть проблемка: при возникновении исключения IOException нужно его обработать и в блоке Catch выбросить моё исключение ServerRunningException, которое будет обрабатываться при вызове метода извне, при помощи throws в сигнатуре. Но IDE требует от меня принудительного обрабатывания, что меня не устраивает... Сэмплы кода:
(Метод)
public boolean connect() throws ServerRunningException { //Перебросил вверх по иерархии
Thread processing = new Thread(() -> {
try {
server = new ServerSocket(PORT);
ExecutorService flowsPool = Executors.newFixedThreadPool(COUNT_OF_CONNECTIONS);
Semaphore block = new Semaphore(COUNT_OF_CONNECTIONS);
while (true) {
block.acquire();
Socket accept = server.accept();
flowsPool.execute(() -> {
try (
InputStream inputStream = accept.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, "cp1251"));
DataInputStream dataInputStream = new DataInputStream(inputStream);
){
String command;
do {
command = br.readLine();
Validation.check(command);
} while(command != null);
accept.close();
System.out.println("closed ..");
} catch (IOException ex) {
ex.printStackTrace();
} catch (NullPointerException ex){
ex.printStackTrace();
} finally {
block.release();
}
});
}
} catch (InterruptedException ex) {
ex.printStackTrace();
} catch (IOException ex) {
throw new ServerRunningException(ex); //unreported exception ServerRunningException; must be caught or declared to be thrown
}
});
processing.start();
return true;
}
(Класс собственного исключения)
public class ServerRunningException extends IOException{
String message;
public ServerRunningException(Throwable ex){
message = ex.getMessage();
initCause(ex);
}
@Override
public String getMessage(){
return message;
}
}
Заранее спасибо)
Это не IDE требует а java компилятор.
В качестве решения Вы можете наследовать Ваше исключение от java.lang.RuntimeException, наследников этого исключения не надо объявлять в сигнатурах методов, т.н. unchecked exceptions
Есть ImageView img, в которое картинка загружается по ссылке при помощи Picasso:
После закрытия окна по кнопке введненные значения не сохранятся в переменных данного контроллераИмеется контроллер он отображает новое...
Есть программа, которой нужно иногда считывать данные из файловВ самой программе указываю путь:
Еще не успел освоить что то более сложное чем простые циклы в kotlin, поэтому не знаю как можно взять индекс в самом теле циклаДля примера на java цикл...