Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
ZeppBreaker

dúvida-reader

Recommended Posts

ZeppBreaker

Boas!

É o seguinte, estou a fazer um projecto para ip.

Tenho um problema em relação ao reader. Quando corro o programa, se não existir o ficheito auction.txt dá erro. Penso que, teoricamente, com o throws Exception não deveria existir o problema mas o que é facto é que acontece. Desde já agradecido.

import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

public static void main(String[] args) throws Exception {

	IPBay b = new IPBay();
	/****/
	FileReader reader = new FileReader("auction.txt");
	Scanner filein = new Scanner(reader);
	int numOfCustomers = filein.nextInt();
	filein.nextLine();
	for(int i=0; i<numOfCustomers; i++){
		b.LoadCustomer(filein.nextLine(), filein.nextInt(), filein.nextInt(), filein.nextInt());
	}

	//			b.LoadAuction();

		filein.close();

...

Share this post


Link to post
Share on other sites
Knitter

A única coisa que a palavra throws faz é propagar a excepção, ou de forma simples, descartar a responsabilidade em tratar a excepção. Como o aplicaste no método main, estás a dizer que é o SO que tem a responsabilidade de tratar a excepção, ora o Sistema Operativo não sabe nada de excepções e a mensagem vai parar ao utilizador. Resumindo, descartar responsabilidade não é a solução, a solução seria tratar do erro :)

Primeiro, se o código está dentro do main, não existirá nada fora do programa para tratar qualquer excepção. Nenhuma excepção que és obrigado a tratar deverá sair do método main, pelo menos neste método elas têm de ser tratadas.

Depois, não tem muita lógica tentares abrir um ficheiro que não existe, deverias verificar se o ficheiro existe antes de lhe tentares escrever.

As excepções servem para controlar erros e como não estás a apanhar as excepções que podem ser lançadas não estás a tratar correctamente os erros. Passa a apanhar as excepções e a fazer criar código que tenha em atenção situações de erro antes de elas ocorrerem.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.