On Thu, 08 May 2008 22:04:19 -0700, Knute Johnson wrote:
[...]
Just re-throw the exception.
Let's say Guest throws a DataException to FileUtils.newGuest(), which
then throws that DataException to FileUtils.loadGuest(), which means that
loadGuest() needs to try newGuest() ?
If I'm misunderstanding how it's should work, or the standard approach,
please let me know.
thufir@arrakis:~/bcit-comp2611-project1$
thufir@arrakis:~/bcit-comp2611-project1$ cat src/a00720398/util/
FileUtil.java
/**
* FileUtil.java
*/
package a00720398.util;
import java.util.*;
import java.io.*;
import a00720398.data.*;
public abstract class FileUtil {
public static List<String> parseGuestString (String string){
System.out.println("\n\n\n********\n");
List<String> guestData = new ArrayList<String>();
Scanner lineScanner = new Scanner(string);
while (lineScanner.hasNext()){
String token = lineScanner.next();
guestData.add(token);
System.out.println("\n\ntoken\t\t" + token);
}
return guestData;
}
public static Guest newGuest(String string) {
List<String> guestData = parseGuestString(string);
// try {
Guest guest = new Guest(guestData);
return guest;
// catch (Exception e) {
// e.printStackTrace();
// }
// return new Guest();
}
public static List<Guest> loadGuests(File file){
List<Guest> guests = new ArrayList<Guest>();
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
Scanner lineScanner = new Scanner(line);
lineScanner.useDelimiter("\n");
while (lineScanner.hasNextLine()) {
String oneLine = lineScanner.next
();
Guest guest = newGuest(oneLine);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return guests;
}
}
thufir@arrakis:~/bcit-comp2611-project1$
thufir@arrakis:~/bcit-comp2611-project1$ cat src/a00720398/data/Guest.java
package a00720398.data;
import java.util.*;
import a00720398.data.*;
import a00720398.util.*;
public class Guest {
private int id = 0;
private String
lastName = "foo",
firstName = "foo",
phoneNumber = "foo",
emailAddress = "foo@bar.com";
private Address address;
public Guest() {}
public Guest(List<String> data)/* throws DataException */ {
// if (data.size() != 5){throw new DataException("expected 5
elements, got:\t\t" + data.size());}
// try {
id = Integer.parseInt(data.get(0).trim());
// } catch (Exception e) { //what kind of Exception is this?
// e.printStackTrace();
// throw new DataException(e.getMessage());
// }
lastName = data.get(1);
}
public int getID
()
{return id;}
//private setID(int
id) {this.id =
id;} //never change an ID
public String getLastName
() {return
lastName;}
public void setLastName(String
lastName) {this.lastName = lastName;}
public String getFirstName
() {return
firstName;}
public void setFirstName(String firstName)
{this.firstName = firstName;}
public Address getAddress
() {return
address;}
public void setAddress(Address address)
{this.address = address;}
public String getPhoneNumber
() {return phoneNumber;}
public void setPhoneNumber(String phoneNumber)
{this.phoneNumber = phoneNumber;}
public String getEmailAddress
() {return emailAddress;}
public void setEmailAddress(String emailAddress)
{this.emailAddress = emailAddress;}
public String toString (){
return
"\n\n\nGUEST RECORD\n" + "-----------\n" +
"\nid:\t\t" + getID() +
"\nfirst name:\t" + getFirstName() +
"\nlast name:\t" + getLastName() +
"\nemail address:\t" + getEmailAddress() +
address.toString();
}
}
thufir@arrakis:~/bcit-comp2611-project1$
thufir@arrakis:~/bcit-comp2611-project1$
thanks,
Thufir
all of them throw an exception. You can as Daniel said, only catch it
or throw a new exception.