Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

The Eiffel Compile tecomp 0.16 has been released

... with the following new features:

- Underscore now allowed to improve the readability of
integer constants (e.g. 2_100_095). Grouping of 3 is
recommended but can be done arbitrarily. The integers have
to start with a digit. The underscore is allowed in hex,
octal and binary as well (e.g. 0x0fff_120a, 0c77_44,
0b1111_0000).

- Free operators implemented.

- Webpresence improved at http://tecomp.sourceforge.net
and language description improved.

- Exception objects implemented. To raise an exception
create an object of type DEVELOPER_EXCEPTION and call the
feature raise. The class which handles exception has to
inherit from EXCEPTION_MANAGER. The feature {{exception}}
returns the raised exception. Object test can be used to
check the type of the exception (see example below).

class MY_EXCEPTION inherit DEVELOPER_EXCEPTION end

class HANDLER inherit EXCEPTION_MANAGER feature
raise_my_exception
do
(create {MY_EXCEPTION}).raise
end

raise_precondition
require
False
do
end

test_exceptions
local
i:INTEGER
do
if i = 0 then
raise_my_exception
else if i = 1 then
raise_precondition
end
rescue
check i <= 1 end
check i = 0 implies {e1:MY_EXCEPTION} exception end
check i = 1 implies {e2:PRECONDITION_VIOLATION} exception end
check i = 1 implies {e: ASSERTION_VIOLATION} exception end
i := i + 1
retry
end
end

Available exception classes in the kernel library

- EXCEPTION, EXCEPTION_MANAGER, DEVELOPER_EXCEPTION,

- ASSERTION_VIOLATION, CHECK_VIOLATION,
PRECONDITION_VIOLATION, POSTCONDITION_VIOLATION,
INVARIANT_VIOLATION, LOOP_INVARIANT_VIOLATION,
VARIANT_VIOLATION

- BAD_INSPECT_VALUE, IO_EXCEPTION

Posted by Helmut Brandl 2009-04-27