• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

(B&S)My Data.java and read() !

 
Ranch Hand
Posts: 267
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all
First of all, if i violate any of the JavaRanch policies by dropping my Data.java's constructor and also my read() method for your advice and tips, pls remove appropriately and i apologise; but i just wanna know if my read() is on track and appropriate! I use a cache:


I dont know if this procedure is sufficient for a read() method? Also i dont know if my Data.java constructor is appropriate? Thanks! :roll:

[Andrew: removed code that is irrelevant to the discussion]
[ December 30, 2005: Message edited by: Andrew Monkhouse ]
 
Ranch Hand
Posts: 211
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
For exception handling, I would have done something like this:

try {
recordLength = raf.readInt();
} catch(IOException io) {
throw new DataAccessException("I/O Error", io);
}

Note io is given as an argument to DataAccessException. In this way, exception chaining (getCause) can be used later.
 
author and jackaroo
Posts: 12199
280
Mac IntelliJ IDE Firefox Browser Oracle C++ Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Saheed

First of all, if i violate any of the JavaRanch policies by dropping my Data.java's constructor and also my read() method for your advice and tips, pls remove appropriately and i apologise;

This is dangerously close to having all code removed, however I have decided to leave it for now.

I think you have far too much code posted for getting many comments - it just becomes too much for others to read and make comments on. You would be better breaking it down to smaller sections. While I got rid of many methods and variables that were not germaine to your desired discussion on the read() methods and the constructor, it could have been pared down even further. Probably it would have been best to have a post that only discussed the constructor (and only had those methods and variables necessary for that discussion), then another post that only discussed the read method with a comment that global variables are initialized in the constructor (possibly with a pointer back to the original thread).

I don't think there is much value in having both a Javadoc comment and an inline comment:Speaking of dbName - why is it a global variable? Do you use it outside of the constructor and it's associated openDataFile() method?

Your read() method has a very small window of oportunity for a record to be deleted between the validation of the record and the conversion back into a String[].

Regards, Andrew
 
Saheed Adepoju
Ranch Hand
Posts: 267
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi
Thanks Ali Hussein and Andrew for your insights! I apologise and would make necessary adjustment to posts i send next time! I see your point about the dbName, it's best made a local variable! I also see your point as regards the read()! I will look thru it again! I have modified the code to have a method to check for the validity of the file now! Thanks for your input!
 
Can you smell this for me? I think this tiny ad smells like blueberry pie!
Thread Boost feature
https://coderanch.com/t/674455/Thread-Boost-feature
    Bookmark Topic Watch Topic
  • New Topic