thufir wrote:
> 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@[EMAIL PROTECTED]
> thufir@[EMAIL PROTECTED]
cat src/a00720398/util/
> FileUtil.java
> /**
> * FileUtil.java
> */
>
> package a00720398.util;
>
> im****t java.util.*;
> im****t java.io.*;
> im****t 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@[EMAIL PROTECTED]
> thufir@[EMAIL PROTECTED]
cat
src/a00720398/data/Guest.java
> package a00720398.data;
>
> im****t java.util.*;
>
> im****t a00720398.data.*;
> im****t a00720398.util.*;
>
>
> public class Guest {
>
> private int id = 0;
>
> private String
> lastName = "foo",
> firstName = "foo",
> phoneNumber = "foo",
> emailAddress = "foo@[EMAIL PROTECTED]
";
>
> 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@[EMAIL PROTECTED]
> thufir@[EMAIL PROTECTED]
>
>
>
>
> thanks,
>
> Thufir
If you have say three nested method calls, one(), two() and three() and
all of them throw an exception. You can as Daniel said, only catch it
in the top level call or if you need to do some processing at the lower
level but still want to propagate the exception you can throw it again
or throw a new exception.
public void one() throws Exception {
two();
}
public void two() throws Exception {
try {
one();
} catch (Exception e) {
// error processing here
throw new Exception();
}
}
public void three() throws Exception {
throw new Exception();
}
try {
one();
} catch (Exception e) {
}
--
Knute Johnson
email s/nospam/linux/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDem


|