What does that show?

On 5/9/05, Dr Balwinder S Dheeman <bsd.SANSPAM / cto.homelinux.net> wrote:
> On 05/09/2005 04:21 AM, Bill Atkins wrote:
> > This isn't about changing programming habits.  Having nil return nil
> > for missing methods can have serious consequences.
> >
> > Consider:
> >
> >    file = create_new_log_file
> >    file.log "here's a bit of information"
> >
> > You're expecting this code to log something to a file every time it
> > gets called.  But suppose create_new_log_file returns nil, due to some
> > mistake you've made while coding it.  No exception is raised, so when
> > you run your program, it performs its job appropriately.  You move on.
> >
> > Two months later, you urgently need to get information from those
> > logs.  But uh-oh - the log files are empty.  Now you're screwed.
> 
> irb(main):001:0> file.log 'here is a bit of infromation'
> NameError: undefined local variable or method `file' for main:Object
>          from (irb):1
> irb(main):002:0> file = nil
> => nil
> irb(main):003:0> file.log 'here is a bit of infromation'
> NoMethodError: undefined method `log' for nil:NilClass
>          from (irb):3
> irb(main):004:0>
> 
> --
> Dr Balwinder Singh Dheeman            Registered Linux User: #229709
> CLLO (Chief Linux Learning Officer)   Machines: #168573, 170593, 259192
> Anu's Linux@HOME                      Distros: Ubuntu, Fedora, Knoppix
> More: http://anu.homelinux.net/~bsd/  Visit: http://counter.li.org/
> 
> 


-- 
Bill Atkins