#java #spring #exception #error-handling #nullpointerexception
#Ява #весна #исключение #обработка ошибок #исключение nullpointerexception
Вопрос:
у меня есть этот код, и мне нужно задать вопрос :
демонстрация публичного класса {
public static void main(String[] args) throws ProtocolException{ Protocol ssh = Connection.getInstance(ConnectionType.SSH); Protocol ssh2 = Connection.getInstance(ConnectionType.SSH); Protocol telnet = Connection.getInstance(ConnectionType.TELNET); Protocol scp = Connection.getInstance(ConnectionType.SCP); Protocol ftp = Connection.getInstance(ConnectionType.FTP); if(ssh == ssh2) { System.out.println(" ssh is equal to ssh2"); } ssh.send(" testing ssh "); telnet.send("Testing telnet "); scp.send("Testing scp"); System.out.println(Connection.getCurrentConnections()); Connection.release(ConnectionType.SSH); System.out.println(Connection.getCurrentConnections()); ftp = Connection.getInstance(ConnectionType.FTP); System.out.println(Connection.getCurrentConnections()); ssh = Connection.getInstance(ConnectionType.SSH); ftp = Connection.getInstance(ConnectionType.FTP); ftp = Connection.getInstance(ConnectionType.FTP); ftp = Connection.getInstance(ConnectionType.FTP); ftp.send("Testing FTP"); Connection.release(ConnectionType.FTP); Protocol tftp = Connection.getInstance(ConnectionType.TFTP); Protocol tftp2 = Connection.getInstance(ConnectionType.TFTP); System.out.println(Connection.getCurrentConnections()); if(tftp == tftp2 ) { System.out.println("Same object"); } tftp.send("test the TFTP "); tftp2.send("test the TFTP "); //ftp = Ftp.getInsatnce(); ///Connection.release(ConnectionType.TFTP); System.out.println(Connection.getCurrentConnections());//3 if(ftp == null) { System.out.println("FTP is a null"); } else { System.out.println("FTP is not a null"); } ftp.send(" breaking the logic "); }
реализации функций :
getInstance(String connectionProtocol): создайте новый объект, если для данного типа не создан объект, в противном случае верните текущий объект для данного протокола.
релиз(протокол подключения): попытается уничтожить соединение для данного протокола.
getCurrentConnections: возвращает список всех текущих созданных подключений.
отправить(строковое сообщение): Напечатает сообщение, как показано ниже
и мне нужно обрабатывать ошибки с помощью обработки исключений :
каковы 2 лучших способа обработки этих ошибок? ps: Я создаю этот класс для того, чтобы решить его :
public interface Protocol { //Connection is already released //Unable to release the connection //connection is use public boolean release() throws ProtocolException; //No connection //timeout connection public void send(String message) throws ProtocolException; }
I did smth like that :
//Connection is already released try { Connection.release(ConnectionType.SSH); } catch (NullPointerException nullPointerException) { System.err.println(nullPointerException.getMessage()); System.err.println("connection is already realeased "); }
но я думаю, что это неправда .. есть идеи или помощь в реализации этой концепции ?