Estimation is for Visibility

Estimations are not meant to be used as accountability rulers. They are meant for visibility.
it gives early visibility to know that our business schedules will work, or early warning they will not so we can react accordingly.
….the much you break tasks into smaller pieces the easier to estimate
….estimations, by definition are “best guesses based on current information”

if a task is going to take 2 days to complete, it will take 2 days, no matter what is your estimate.
breaking your work to smaller tasks, considering unknowns makes an estimate close to what a task will take to complete.

via [codesqeez]

Advertisements

Ignore NullReferenceException when reading object properties

Is there any way to direct C# to ignore NullReferenceException (or any specific exception for that matter) for a set of statements?
This is useful when trying to read properties from a deserialized object that may contain many null objects in it.
Having a helper method to check for null could be one way but I’m looking for something close to ‘On Error Resume Next’ (from VB) at a block of statement level.

Try-Catch will skip the succeeding statements on exception

try
{
   stmt 1;// NullReferenceException here, will jump to catch - skipping stmt2 and stmt 3
   stmt 2;
   stmt 3;
}
catch (NullReferenceException) { }

For Example: I’m deserializing an XML message to an object and then try to access a property like

Message.instance[0].prop1.prop2.ID
now prop2 could be a null object (because it doesn’t exists in XML Message – an optional element in XSD). right now I need to check for null for each element in the hierarchy before accessing the leaf element. i.e I’ve to check if instance[0], prop1, prop2 are not null, before accessing ‘ID’.

any better way that avoids null-checking for each element in the hierarchy?

now I’m using delegate and NullReferenceException handling

public delegate string SD();//declare before class definition

string X = GetValue(() => Message.instance[0].prop1.prop2.ID); //usage

//GetValue defintion
private string GetValue(SD d){
        try
        {
            return d();
        }
        catch (NullReferenceException) {
            return "";
        }

    }

Thanks to http://stackoverflow.com/questions/117173/c-try-catch-every-line-of-code-without-individual-try-catch-blocks for the idea


From my SO Post