Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Java Help > Re: throwing ex...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 4 of 9 Topic 16067 of 16269
Post > Topic >>

Re: throwing exceptions on instantiation

by Knute Johnson <nospam@[EMAIL PROTECTED] > May 9, 2008 at 09:15 AM

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
 




 9 Posts in Topic:
throwing exceptions on instantiation
thufir <hawat.thufir@[  2008-05-09 04:06:49 
Re: throwing exceptions on instantiation
Knute Johnson <nospam@  2008-05-08 22:04:19 
Re: throwing exceptions on instantiation
thufir <hawat.thufir@[  2008-05-09 09:31:30 
Re: throwing exceptions on instantiation
Knute Johnson <nospam@  2008-05-09 09:15:52 
Re: throwing exceptions on instantiation
Daniel Pitts <newsgrou  2008-05-09 07:55:17 
Re: throwing exceptions on instantiation
thufir <hawat.thufir@[  2008-05-10 07:13:22 
Re: throwing exceptions on instantiation
Lew <lew@[EMAIL PROTEC  2008-05-10 08:24:08 
Re: throwing exceptions on instantiation
Roedy Green <see_websi  2008-05-10 13:03:09 
Re: throwing exceptions on instantiation
Lew <lew@[EMAIL PROTEC  2008-05-10 09:52:24 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Jul 26 5:04:26 CDT 2008.