# How to fail initialize

**URL:** <https://www.ruby-forum.com/t/how-to-fail-initialize/85816>\
**Category:** Ruby\
**Created:** [February 16, 2007, 4:15pm UTC](https://www.ruby-forum.com/t/how-to-fail-initialize/85816 "2007-02-16T16:15:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jim](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ac91a4/32.png) [@jim](https://www.ruby-forum.com/u/jim)\
**Post date:** [February 16, 2007, 4:15pm UTC](https://www.ruby-forum.com/t/how-to-fail-initialize/85816/1 "2007-02-16T16:15:35Z")

</div>

I would like to know the correct way to fail the creating of an object.  
I would return a NULL in c/c++ but returning a nil does not to seem to  
work correctly i.e.

if(obj) then do stuff

OR

if(obj != nil) then do stuff

New to Ruby if you couldn’t guess.

Jim.

---

<div class="post-metadata">

**Author:** ![jim](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ac91a4/32.png) [@jim](https://www.ruby-forum.com/u/jim)\
**Post date:** [February 16, 2007, 4:21pm UTC](https://www.ruby-forum.com/t/how-to-fail-initialize/85816/2 "2007-02-16T16:21:14Z")

</div>

On Sat, 17 Feb 2007, Jim wrote:

> New to Ruby if you couldn’t guess.

def initialize  
raise  
end

the code is easier to work with if it either returns valid results, or  
raises  
an exception - i removes the burden of testing return values in the  
client  
code.

kind regards.

-a

---

<div class="post-metadata">

**Author:** ![jim](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ac91a4/32.png) [@jim](https://www.ruby-forum.com/u/jim)\
**Post date:** [February 16, 2007, 4:36pm UTC](https://www.ruby-forum.com/t/how-to-fail-initialize/85816/3 "2007-02-16T16:36:53Z")

</div>

Thanks for quick response, I decided to do error testing before creating  
object thus removing the problem, I find exception handling messy.

Thanks,  
Jim.
