(koans) uninitialized constant TriangleError


I have to make a exception part on triangles now.

The exercise looks like this :
**# You need to write the triangle method in the file ‘triangle.rb’
require ‘triangle.rb’

class AboutTriangleProject2 < EdgeCase::Koan

The first assignment did not talk about how to handle errors.

Let’s handle that part now.

def test_illegal_triangles_throw_exceptions
assert_raise(TriangleError) do triangle(0, 0, 0) end
assert_raise(TriangleError) do triangle(3, 4, -5) end
assert_raise(TriangleError) do triangle(1, 1, 3) end
assert_raise(TriangleError) do triangle(2, 4, 2) end
# HINT: for tips, see


So I looked at that page and come with this solution :

def triangle(a, b, c)

  raise TriangleError, "length cannnot be 0 or lesser" if (a <= 0) or (b 
0) or (c <= 0);
  raise TriangleError, "length does not mach Pyschotorogas" if (a * a + 
b *
b != c * c);

  return :equilateral if ((a == b) and (b == c))
  return :isosceles if (((a == b) and (b != c)) or
                       ((a != b) and (b == c)) or
                       ((a == c) and (a != b)))
  return :scalene  if ((a !=b) and (b != c))

But now I get a uninitialized constant TriangleError

What did I do wrong now ?



I found this solution :




def triangle(a, b, c)

raise (TriangleError), “length cannnot be 0 or lesser” if (a <= 0) or
<= 0) or (c <= 0);
raise (TriangleError), “length does not match Pyschotorogas” if (a * a
b * b != c * c);

return :equilateral if ((a == b) and (b == c))
return :isosceles if (((a == b) and (b != c)) or
((a != b) and (b == c)) or
((a == c) and (a != b)))
return :scalene if ((a !=b) and (b != c))

Error class used in part 2. No need to change this code.

class TriangleError < StandardError

But now when a error is found the script is stopped. Can anyone give me
hint how I can continue this script.


Op zaterdag 22 september 2012 16:43:03 UTC+2 schreef roelof het

  1. Very good. Now you should try to determine what “Ruby on Rails” is,
    and whether your questions have anything to do with Ruby on Rails.

  2. Read a tutorial on ruby exception handling, or better yet buy the
    book “Beginning Ruby”:


and read that before trying to do the koans. All you seem to be doing
is copying other people’s code, so what good does that do you?
In fact, you know so little about ruby that you think Ruby on Rails
is ruby.