dev:error_handling
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| dev:error_handling [2015/09/28 14:09] – oschuett | dev:error_handling [2025/03/08 13:41] (current) – oschuett | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Error Handling ====== | ====== Error Handling ====== | ||
| - | In CP2K there exist three convenient macros for error handling. They are defined in [[src>cp2k/src/common/cp_common_uses.f90]], and are therefore always available. However, these macros can only be used for **short messages**, because of Fortran' | + | In CP2K there exist three convenient macros for error handling. They are defined in [[src> |
| <code Fortran> | <code Fortran> | ||
| | | ||
| | | ||
| - | | + | |
| </ | </ | ||
| For longer messages one can use these two routines: | For longer messages one can use these two routines: | ||
| <code Fortran> | <code Fortran> | ||
| - | CALL cp_warn(__SHORT_FILE__, | + | CALL cp_warn(__LOCATION__,"A long warning message "//& |
| - | "which can span multiple lines and contains "\\& | + | "which can span multiple lines and contains "//& |
| "some valuable advice for the user." | "some valuable advice for the user." | ||
| - | CALL cp_abort(__SHORT_FILE__, | + | CALL cp_abort(__LOCATION__,"A long error message "//& |
| - | " | + | " |
| </ | </ | ||
| + | <note important> | ||
| + | Messages from '' | ||
| + | </ | ||
| ===== Cheat Sheet ===== | ===== Cheat Sheet ===== | ||
| If you want to... | If you want to... | ||
| * print a **short warning** message, then you should use:< | * print a **short warning** message, then you should use:< | ||
| - | * print a **longer warning** message, then you should use:< | + | * print a **longer warning** message, then you should use:< |
| "which can even span multiple lines" | "which can even span multiple lines" | ||
| * **stop** the program with a **short** error message, then you should use:< | * **stop** the program with a **short** error message, then you should use:< | ||
| - | * **stop** the program with a **longer** error message, then you should use:< | + | * **stop** the program with a **longer** error message, then you should use:< |
| " | " | ||
| - | * have a **simple assertion** without a custom error message, then you should use:< | + | * have a **simple assertion** without a custom error message, then you should use:< |
| - | * have a **simple assertion** with a **short** error message, then you should use:< | + | * have a **simple assertion** with a **short** error message, then you should use:< |
| * have a **complex assertion** with a **short** error message, then you should use:< | * have a **complex assertion** with a **short** error message, then you should use:< | ||
| CPABORT(" | CPABORT(" | ||
| * have a **lengthy assertion** with a **longer** error message, then you should use:< | * have a **lengthy assertion** with a **longer** error message, then you should use:< | ||
| - | CALL cp_abort(__SHORT_FILE__, | + | CALL cp_abort(__LOCATION__,"your lengthy message"//& |
| "which again can even span multiple lines" | "which again can even span multiple lines" | ||
dev/error_handling.1443449393.txt.gz · Last modified: (external edit)
