Difference between revisions of "Coding guideline - CatGlobe"

From Catglobe Wiki
Jump to: navigation, search
(New page: == Introduction == This guideline contains CatGlobe-specific coding rules.)
 
Line 1: Line 1:
== Introduction ==
+
== Introduction ==
  
This guideline contains CatGlobe-specific coding rules.
+
This guideline contains CatGlobe-specific coding rules.
 +
 
 +
== Exception ==
 +
 
 +
=== Exception handling ===
 +
 
 +
*Only catch exception if you can do some thing with it.
 +
*All re-thrown exception must include the original exception in its inner exception.
 +
*DO: always catch specific exception type. You are allowed to catch generic exception and re-throw a specific exception; for example in CGScript all exceptions are caught and a RuntimeException is re-thrown afterward.
 +
*DO NOT: empty and undocumented catches; using unspecific catches, unless they are documented well in the design document and are approved by the PMs.
 +
 
 +
=== Create a new custom of exception ===
 +
 
 +
*Naming rule: the new exception must be suffixed with “Exception”.
 +
*All custom exceptions must inherit from another exception class.
 +
*The exception should be serializable in order to use in CatTask service. Refer to [[Serializable exceptions]] for more details. Notice: when the new CatTask service is done, this may be obsolete.
 +
*Namespace rule:
 +
 
 +
        - If the being created exception is used in multiple places, it must be placed in the CatGlobe.Framework.Exceptions namespace.
 +
 
 +
        - Otherwise, if it is used for a specific class only, it can be placed in the namespace where it is used.

Revision as of 03:19, 17 December 2008

Introduction

This guideline contains CatGlobe-specific coding rules.

Exception

Exception handling

  • Only catch exception if you can do some thing with it.
  • All re-thrown exception must include the original exception in its inner exception.
  • DO: always catch specific exception type. You are allowed to catch generic exception and re-throw a specific exception; for example in CGScript all exceptions are caught and a RuntimeException is re-thrown afterward.
  • DO NOT: empty and undocumented catches; using unspecific catches, unless they are documented well in the design document and are approved by the PMs.

Create a new custom of exception

  • Naming rule: the new exception must be suffixed with “Exception”.
  • All custom exceptions must inherit from another exception class.
  • The exception should be serializable in order to use in CatTask service. Refer to Serializable exceptions for more details. Notice: when the new CatTask service is done, this may be obsolete.
  • Namespace rule:

        - If the being created exception is used in multiple places, it must be placed in the CatGlobe.Framework.Exceptions namespace.

        - Otherwise, if it is used for a specific class only, it can be placed in the namespace where it is used.