Caros amigos,
com o intuito de agrupar as exceções geradas pelo aplicativo criei a seguinte classe:
[code]
package lib.client.exc;
public class CException
{
public static class AppletIsNull extends Exception
{
public AppletIsNull()
{
super(“Applet não foi instanciado”);
}
}
public static class ResourceNotFound extends Exception
{
public ResourceNotFound()
{
super("Recurso indisponível");
}
}
} [/code]
Fonte que lança a exceção:
[code]
package lib.client;
import lib.client.exc.CException;
import lib.client.exc.CException.AppletIsNull;
public class CClientCfg
{
private CApplet m_applet;
public void setApplet(CApplet applet)
{
m_applet = applet;
}
public CApplet getApplet() throws AppletIsNull
{
if (m_applet == null) {
throw new CException.AppletIsNull();
}
return m_applet;
}
} [/code]
Se eu não declarar a classe interna AppletIsNull como static o compilador no ponto do lançamento da exceção dá a seguinte mensagem:
“No enclosing instance of type CException is accessible. Must qualify the allocation with an enclosing instance of type CException”
Alguém saberia me dizer porquê a classe interna tem que ser static?