Voce tem que usar as exceptions. Neste exemplo usei IOException, mas
voce pode usar a que mais lhe convier, ou ate criar a sua.
E voce nao precisa destruir o objeto, pois em java isso e' feito
automaticamente. Voce so precisa garantir que nao existam mais
referencias para aquele objeto. Se ele tiver algum metodo que faca a
limpeza de outros recursos do sistema operacional, voce pode chamar esse
metodo quando pegar a excecao.
public class B {
public void b() throws IOException {
if (erro)
throw new IOException();
blah();
blah();
}
}
public class A {
public void a() {
try {
B b = new B();
b.b0();
b.b();
b.b1();
}
catch (IOException e) {
System.out.println("Erro: " + e);
e.printStackTrace();
// se a classe B tem algum metodo que faz a
// limpeza de algo depois dessa excecao:
b.clean();
}
blah();
}
}
Thiago Rodrigues de Almeida wrote:
>
> Oi pessoal, tudo bom ?
> Tenho uma duvida muito simples mas nao estou conseguindo resolve-la.
>
> Tenho uma classe A que chama a B (instancia B).
> No momento q a classe A chama B, ela dispara alguns metodos executados
> por B. O problema eh q dentro do metodo de B ocorre um erro. A partir deste
> instante, quero q a classe B seja destruida e seja retornado o controle a
> quem a chamou (no caso, A).
> O problema eh q no momento do erro no metodo, eu nao posso escrever
> System.exit pq ao inves de so a classe B ser destruida, o sistema todo eh
> terminado.
>
> Exemplo:
>
> "Classe B"
> public void X()
> {
> if (x==1)
> // entao retona o controle a quem instanciou (no caso, classe A).
>O
> retorno deve ser nesse momento e nao esperar q
> o metodo seja totalmente executado para poder retornar.
> else
> {
> xxxxxxx
> }
> <comandos>
> }
>
> Eu sei q poderia simplesmente retornar com (return true/false) mas nao eh
> o meu caso.
>
> Como posso resolver esse problema ? Alguma sugestao ?
> Espero ter sido claro o suficiente...
>
> Thiago Almeida.
>
> * Para nao receber mais e-mails da lista, acesse
><http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail, escolha
>a lista <[EMAIL PROTECTED]> e de um <submit>.
--
Eduardo Issao Ito <[EMAIL PROTECTED]>
Eurosoft Consultoria <http://www.euroconsult.com.br>
Rua Marina Saddi Haidar, 176 - S�o Paulo - SP - Brasil
CEP 04650-050
TEL: +55 11 524-8022
FAX: +55 11 524-0408
* Para nao receber mais e-mails da lista, acesse
<http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail, escolha a
lista <[EMAIL PROTECTED]> e de um <submit>.