Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro ao compilar a class SaldoInsuficienteException

Boa tarde, amigos.

Realizando os exemplos do vídeo da aula 06 Exceções e controle de erros - Atividade 1, ao criar a classe SaldoInsuficienteException, conforme é orientado como o trecho abaixo:

public class SaldoInsuficienteException extends RuntimeException {


    private final double saldoAtual;

    public SaldoInsuficienteException(double saldoAtual){

        super("Saldo Insuficiente: " + saldoAtual);
        this.saldoAtual = saldoAtual;

    }

    public double getSaldoAtual() {
        return saldoAtual;
    }
}

O compilador automático do Eclipse exibe a seguinte mensagem de erro no Console, relativa a falha de compilação do arquivo "SaldoInsuficienteException.java":

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files

    at SaldoInsuficienteException.<init>(SaldoInsuficienteException.java:1)
    at Conta.saca(Conta.java:17)
    at TestaConta.main(TestaConta.java:43)

Procurei em diversos forúns e canais pela internet e não consegui achar nada que me auxiliasse nesse caso. Vocês poderiam me dar um help?

Segue também erros contidos na aba "problems", da IDE:

  • Description: The project was not built since its build path is incomplete. Cannot find the class file for java.io.ObjectInputStream. Fix the build path then try building this project

  • Description:The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files

OBS: Estou usando a versão "JRE System Library [jdk1.8.0_121]" da JDK. Já tentei remover e adicionar novamente a mesma, mas sem sucesso.

Fico no aguardo de vocês e agradeço desde já, a ajuda.

Um grande abraço!

3 respostas

Olá Rafael,

Esse erro deve ser porque você não está importando o Objeto ObjectInputStream. A classe que tem o método main() tem esse import?

Olá Lucas,

Você se refere a uma chamada do objeto, dessa forma:

import java.io.ObjectInputStream;

Se sim, fiz a declaração no escopo da classe main, da seguinte forma, mas não funcionou:

import java.io.ObjectInputStream;

class TestaConta {

    public static void main(String[] args) {


        Conta joao = new Conta();
        joao.deposita(50.0);

        try{
        joao.saca(100.0);
        }catch(Exception e){
            System.out.println("O saldo é insuficiente!");
        }

        System.out.println(joao.getSaldo());        

    }
}

Ou haveria alguma outra forma?

Obrigado,

solução!

Consegui solucionar o problema instalando uma versão anterior do Java (Java SE Runtime Environment 7u80).

Feito isto, acessei o caminho na barra de tarefas do Eclipse: Window -> Preferences -> Java (lista do lado esquerdo) -> Instaled JREs -> botão "Search" (procurar o caminho do novo RJE instalado, exemplo: C:\Program Files\Java\jdk1.7.0_25\jre) e selecionar sua respectiva checkbox -> pronto.

De qualquer forma, agradeço a atenção e intenção de ajudar.

Forte abraço!