Concept exceptions


Concept exceptions are very similar with the C++ exceptions, the only difference is the fact that they don’t belong to a variable type. In a try-catch statement you will have only one type of catch (instead of one or more in C++)

Another difference is that an uncaught exception, it will be caught by the Concept machine automatically, and retrown for the calling function like this:

The syntax for throw is:
throw expr;

expr can be any kind of variable or expression.

function B() {
	throw “Exception !!!”;

function A() {
	// no try/catch !!! in  C++ this will cause the program to fail.
	// in this case, the uncaught exception will cause the sudden termination of A
	// and A will re-throw the exception raised by B

function C() {
	try {
	} catch (var Exception) {	// will catch the exception raised by B and not catched by A
		echo Exception;