Exceptions Java

2 respostas
L

No meu programa devo ler apenas arquivos .txt
Como faço uma exception para tratar um arquivo que não é txt?
E uma exception para tratar um arquivo vazio?

2 Respostas

thimor

voce cria uma classe que extende RunTimeExceptioon. e na hora de manipular o arquivo voce coloca um if para testar a extencao do arquivo, caso seja false voce dispara a excecao.

if(arquivo nao é txt?) {
    throw new ArquivoInvalidoException("So é permitido arquivos de texto!");
}
if(arquivo é vazio?) {
    throw new ArquivoVazioException("Selecione um arquivo que contenha informacoes!");
}
wldomiciano

Seria algo assim eu acho:

Obs.: Requer java 11 ou posterior.

import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Optional;

class EmptyFileException extends Exception {
  EmptyFileException() {
    super("O arquivo está vazio");
  }
}

class NoTxtException extends Exception {
  NoTxtException() {
    super("Tem que ser TXT");
  }
}

public class Main {
  public static void main(String[] args) throws Exception {
    final var filename = "test.txt";

    // @formatter:off
    Optional.ofNullable(filename)
            .filter(f -> f.contains("."))
            .map(f -> f.substring(filename.lastIndexOf(".") + 1))
            .filter(f -> f.equals("txt"))
            .orElseThrow(NoTxtException::new); // @formatter:on

    final var content = Files.readString(Path.of(filename));

    if (content.isEmpty()) {
      throw new EmptyFileException();
    }

    System.out.println(content);
  }
}
Criado 16 de junho de 2020
Ultima resposta 16 de jun. de 2020
Respostas 2
Participantes 3