Difference between revisions of "Exception Handling"

From Catglobe Wiki
Jump to: navigation, search
(Exception Handling (Error Runtime Handling))
(Examples)
Line 32: Line 32:
  
 
== <span style="color:#a52a2a;">'''Examples'''</span>  ==
 
== <span style="color:#a52a2a;">'''Examples'''</span>  ==
 +
 +
<source lang="javascript">
 +
Example 1:
 +
 +
object e;
 +
string Name = "ManTu";
 +
try {
 +
      Age = 20;  // The Age variable is not declared, so this line will cause exception/error. An exception will be thrown to the catch clause
 +
                  // And all codes below this line (Age = 20;) will not be ignored.
 +
      print("Hello " + Name + "! Your Age is: " + Age);
 +
}
 +
catch(e) {
 +
    print("====There 's an error with your script :)======");
 +
    print(e.ToString());
 +
}
 +
 +
 +
Example 2:
 +
 +
string e;
 +
string Name = "ManTu";
 +
number Age = 0;
 +
try {
 +
      if(Age == 0)
 +
        throw "Age can not be zero!";
 +
      else
 +
        print("Hello " + Name + "! Your Age is: " + Age);
 +
}
 +
catch(e) {
 +
    print(e);  // print out: Age can not be zero!
 +
}
 +
 +
</source>

Revision as of 06:18, 20 December 2011

Exception Handling (Error Runtime Handling)


An exception is an error occurs in the runtime (the excution) of program. The CGScript language uses the try/catch statement and the throw expression to implement the exception handling.

Syntax

try-catch statement

try {
   // codes that could throw an exception
}
catch (exception) {
   // codes that execute when exception is thrown in the try block
}
  • In the try clause, when a line of code cause the exception/error, the exception will be thrown to the catch clause and the codes in catch clause will process that exception. All codes below the code which cause the exception/error will be ignored.
  • The exception can be any type (E.g. exception object, number, string...)
  • CGScript language does not support multi catch clauses.

throw expression

throw [expression]
  • The expression can be any type (E.g. exception object, number, string...)
  • Used in try-catch statement only.
  • If throw is used in catch clause, it will be re-throw. See below examples for information about re-throw.

See also

Examples

Example 1:

object e;
string Name = "ManTu";
try {
      Age = 20;   // The Age variable is not declared, so this line will cause exception/error. An exception will be thrown to the catch clause
                  // And all codes below this line (Age = 20;) will not be ignored.
      print("Hello " + Name + "! Your Age is: " + Age);
} 
catch(e) {
    print("====There 's an error with your script :)======");
    print(e.ToString());
}


Example 2:

string e;
string Name = "ManTu";
number Age = 0;
try {
      if(Age == 0) 
         throw "Age can not be zero!";
      else
        print("Hello " + Name + "! Your Age is: " + Age);
} 
catch(e) {
    print(e);   // print out: Age can not be zero!
}