Soy nuevo en el uso de RMI y soy relativamente nuevo en el uso de excepciones.RMI y excepciones
quiero ser capaz de lanzar una excepción sobre RMI (¿es esto posible?)
Tengo un servidor simple que sirve a los estudiantes y tengo que eliminar método que si el estudiante no existe Quiero lanzar una excepción personalizada de StudentNotFoundException que extiende RemoteException (¿es esto una buena cosa que hacer?)
Cualquier consejo u orientación sería muy apreciado.
método de interfaz de servidor
/**
* Delete a student on the server
*
* @param id of the student
* @throws RemoteException
* @throws StudentNotFoundException when a student is not found in the system
*/
void removeStudent(int id) throws RemoteException, StudentNotFoundException;
implementación del método de servidor
@Override
public void removeStudent(int id) throws RemoteException, StudentNotFoundException
{
Student student = studentList.remove(id);
if (student == null)
{
throw new StudentNotFoundException("Student with id:" + id + " not found in the system");
}
}
método de cliente
private void removeStudent(int id) throws RemoteException
{
try
{
server.removeStudent(id);
System.out.println("Removed student with id: " + id);
}
catch (StudentNotFoundException e)
{
System.out.println(e.getMessage());
}
}
StudentNotFoundException
package studentserver.common;
import java.rmi.RemoteException;
public class StudentNotFoundException extends RemoteException
{
private static final long serialVersionUID = 1L;
public StudentNotFoundException(String message)
{
super(message);
}
}
Gracias por su respuesta, ahora he solucionado mi problema y me di cuenta de que la extensión de RemoteException era una mala idea.
¡Heh, esa pregunta parece familiar! –
De hecho miré esto antes de publicarlo. Saludos por el consejo: creo que ya resolvió el problema – Malachi