‎2006 Jun 30 2:13 PM
Hello, the following is a segment of code that I have written recently:
IF DATA+1(5) <> TEXT-035.
CATCH SYSTEM-EXCEPTIONS WEIRD_ERROR = 4
OTHERS = 8.
END CATCH.
ENDIF.
When I tried to compile the code, it says:
Unable to interpret "SYSTEM-EXCEPTIONS". Possible causes: Incorrect spelling or comma error.
May I know where is the problem with this code? Thanks a lot!
Regards,
Anyi
‎2006 Jun 30 2:22 PM
WEIRD_ERROR is niether a valid exception group nor a valid runtime error.
Refer SAP help to find the list of valid runtime errors
-Kiran
‎2006 Jun 30 2:16 PM
Hi Anyi,
<b> END CATCH</b> is not a separated word.Write it as <b>ENDCATCH</b> and check your code once.
IF DATA+1(5) <> TEXT-035.
CATCH SYSTEM-EXCEPTIONS WEIRD_ERROR = 4
OTHERS = 8.
<b>ENDCATCH.</b>
ENDIF.
Thanks,
Vinay
‎2006 Jun 30 2:17 PM
hi Zhu,
<b>ENDCATCH</b> should have to be declared together
IF DATA+1(5) <> TEXT-035.
CATCH SYSTEM-EXCEPTIONS WEIRD_ERROR = 4
OTHERS = 8.
ENDCATCH.
ENDIF.
Regards,
Santosh
‎2006 Jun 30 2:20 PM
Err...i have corrected this one, but it is not helping...the problem is with the line with System-Exceptions, not endcatch.
Thanks for all the replies though!
Anyi
‎2006 Jun 30 2:22 PM
‎2006 Jun 30 2:20 PM
HI,
F DATA+1(5) <> TEXT-035.
CATCH SYSTEM-EXCEPTIONS WEIRD_ERROR = 4
OTHERS = 8.
<b>END CATCH.</b>
ENDIF.
Change <b>END CATCH.</b> -
> <b>ENDCATCH.</b>.
Why u want
CATCH SYSTEM-EXCEPTIONS WEIRD_ERROR = 4
OTHERS = 8.
<b>END CATCH.</b>
Catch endcatch statement . i dont think if condition will generate system catchable error.
i thing it should be Raise <Exception_name>.
‎2006 Jun 30 2:22 PM
WEIRD_ERROR is niether a valid exception group nor a valid runtime error.
Refer SAP help to find the list of valid runtime errors
-Kiran
‎2006 Jun 30 2:23 PM
But can I have a customized error? How should that be done? Thanks a lot!
Anyi
‎2006 Jun 30 2:28 PM
Here is a list of the system exceptions.
Alphabetical List of Catchable Runtime Errors
,,ADDF_INT_OVERFLOW
Overflow in addition with type I ( ADD ... UNTIL / ADD ... FROM ... TO)
,,ASSIGN_CASTING_ILLEGAL_CAST
The offset and type of the source field and the target type do not match exactly in the components that are strings, tables, or references.
,,ASSIGN_CASTING_UNKNOWN_TYPE
The type specified at runtime is unknown.
,,BCD_FIELD_OVERFLOW
Overflow in conversion or arithmetic operations (type P with specified length)
,,BCD_OVERFLOW
Overflow in conversion or arithmetic operation (type P)
,,BCD_ZERODIVIDE
Division by 0 (type P)
,,CALL_METHOD_NOT_IMPLEMENTED
Call of a non-implemented interface method
,,COMPUTE_ACOS_DOMAIN
Invalid call of mathematical function ACOS
,,COMPUTE_ASIN_DOMAIN
Invalid call of mathematical function ASIN
,,COMPUTE_ATAN_DOMAIN
Invalid call of mathematical function ATAN
,,COMPUTE_BCD_OVERFLOW
Overflow in arithmetic operation (all operands type P)
,,COMPUTE_COSH_DOMAIN
Invalid call of mathematical function COSH
,,COMPUTE_COSH_OVERFLOW
Overflow in mathematical function COSH
,,COMPUTE_COS_DOMAIN
Invalid call of mathematical function COS
,,COMPUTE_COS_LOSS
Result of COS function is inexact
,,COMPUTE_EXP_DOMAIN
Invalid call of mathematical function EXP
,,COMPUTE_EXP_RANGE
Over- or underflow in mathematical function EXP
,,COMPUTE_FLOAT_DIV_OVERFLOW
Overflow in division (type F)
,,COMPUTE_FLOAT_MINUS_OVERFLOW
Overflow in subtraction (type F)
,,COMPUTE_FLOAT_PLUS_OVERFLOW
Overflow in addition (type F)
,,COMPUTE_FLOAT_TIMES_OVERFLOW
Overflow in multiplication (type F)
,,COMPUTE_FLOAT_ZERODIVIDE
Division by 0 (type F)
,,COMPUTE_INT_ABS_OVERFLOW
Integer overflow when calculating the absolute value
,,COMPUTE_INT_DIV_OVERFLOW
Integer overflow in division
,,COMPUTE_INT_MINUS_OVERFLOW
Integer overflow in subtraction
,,COMPUTE_INT_PLUS_OVERFLOW
Integer overflow in addition
,,COMPUTE_INT_TIMES_OVERFLOW
Integer overflow in multiplication
,,COMPUTE_INT_ZERODIVIDE
Division by 0 (type I)
,,COMPUTE_LOG10_ERROR
Invalid call of the mathematical function LOG10
,,COMPUTE_LOG_ERROR
Invalid call of the mathematical function LOG
,,COMPUTE_MATH_DOMAIN
Invalid call of a mathematical function
,,COMPUTE_MATH_ERROR
Error executing a mathematical function
,,COMPUTE_MATH_LOSS
Result of a mathematical function is inexact
,,COMPUTE_MATH_OVERFLOW
Overflow of a mathematical function
,,COMPUTE_MATH_UNDERFLOW
Underflow in a mathematical function
,,COMPUTE_POW_DOMAIN
Invalid argument when raising powers
,,COMPUTE_POW_RANGE
Over- or underflow when raising powers
,,COMPUTE_SINH_DOMAIN
Invalid call of the mathematical function SINH
,,COMPUTE_SINH_OVERFLOW
Overflow in the mathematical function SINH
,,COMPUTE_SIN_DOMAIN
Invalid call of the mathematical function SIN
,,COMPUTE_SIN_LOSS
Result of the function SIN is inexact
,,COMPUTE_SQRT_DOMAIN
Invalid call of the mathematical function SQRT
,,COMPUTE_TANH_DOMAIN
Invalid call of the mathematical function TANH
,,COMPUTE_TAN_DOMAIN
Invalid call of the mathematical function TAN
,,COMPUTE_TAN_LOSS
Result of the function TAN is inexact
,,CONNE_IMPORT_WRONG_COMP_LENG
Import error: A component in a structured type in the dataset has an incorrect length
,,CONNE_IMPORT_WRONG_COMP_TYPE
Import error: A component of a structured type in the dataset has an incorrect length
,,CONNE_IMPORT_WRONG_FIELD_LENG
Import error: A field in the dataset has an incorrect length
,,CONNE_IMPORT_WRONG_FIELD_TYPE
Import error: A field in a dataset has the wrong type
,,CONNE_IMPORT_OBJECT_TYPE
Import error: Type conflict between simple and structured data types
,,CONNE_IMPORT_WRONG_STRUCTURE
Import error: Type conflict between structured objects
,,CONVT_HEX_CONFLICT
Conversion conflict (Type X)
,,CONVT_NO_NUMBER
Value for conversion cannot be interpreted as a number
,,CONVT_OVERFLOW
Overflow in conversion (all types except type P)
,,CREATE_DATA_NOT_ALLOWED_TYPE
The statement CREATE DATA cannot be executed with a generic type.
,,CREATE_DATA_UNKNOWN_TYPE
The statement CREATE DATA cannot be executed with an unknown type.
,,CREATE_OBJECT_CLASS_ABSTRACT
Attempt to instantiate an abstract class.
,,CREATE_OBJECT_CLASS_NOT_FOUND
The class specified with a dynamic CREATE OBJECT was not found.
,,CREATE_OBJECT_CREATE_PRIVATE
Attempt to create an object of a class defined as 'CREATE PRIVATE'.
,,CREATE_OBJECT_CREATE_PROTECTED
Attempt to create an object of a class defined as 'CREATE PROTECTED'.
,,DATA_LENGTH_NEGATIVE
Invalid subfield access: Negative length
,,DATA_LENGTH_0
Invalid subfield access: Length 0
,,DATA_LENGTH_TOO_LARGE
Invalid subfield access: Length too large
,,DATA_OFFSET_NEGATIVE
Invalid subfield access: Negative offset
,,DATA_OFFSET_TOO_LARGE
Invalid subfield access: Offset too large
,,DATA_OFFSET_LENGTH_TOO_LARGE
Invalid subfield access: Offset + length too large
,,DATA_OFFSET_LENGTH_NOT_ALLOWED
Invalid subfield access: Type not appropriate
,,DATASET_CANT_CLOSE
Unable to close file. There may be no space left in the file system
,,DATASET_CANT_OPEN
Unable to open file
,,DATASET_NO_PIPE
The FILTER addition to the OPEN DATASET statement is not supported on the current operating system
,,DATASET_READ_ERROR
Error reading a file
,,DATASET_TOO_MANY_FILES
Maximum number of open files exceeded
,,DATASET_WRITE_ERROR
Error writing to a file
,,DYN_CALL_METH_CLASSCONSTRUCTOR
Attempt to call the class constructor
,,DYN_CALL_METH_CLASS_ABSTRACT
Attempt to call an abstract method
,,DYN_CALL_METH_CLASS_NOT_FOUND
Attempt to call a method of a non-existent class
,,DYN_CALL_METH_CONSTRUCTOR
Attempt to call the instance constructor
,,DYN_CALL_METH_EXCP_NOT_FOUND
Attempt to catch an unknown exception
,,DYN_CALL_METH_NOT_FOUND
Attempt to call an unknown method
,,DYN_CALL_METH_NOT_IMPLEMENTED
Attempt to call a method that has not been implemented yet
,,DYN_CALL_METH_NO_CLASS_METHOD
Attempt to call an instance method via a class
Attempt to pass a parameter with an incorrect parameter type
,,DYN_CALL_METH_PARAM_LITL_MOVE
Attempt to pass a constant actual parameter to a formal EXPORTING, CHANGING or RETURNING parameter
,,DYN_CALL_METH_PARAM_MISSING
An obligatory parameter was not supplied.
,,DYN_CALL_METH_PARAM_NOT_FOUND
Attempt to pass an unknown parameter
,,DYN_CALL_METH_PARAM_TAB_TYPE
Attempt to pass a parameter with an incorrect table type
,,DYN_CALL_METH_PARAM_TYPE
Attempt to pass a parameter with an incorrect type
,,DYN_CALL_METH_PARREF_INITIAL
An initial data reference was passed for an mandatory parameter.
,,DYN_CALL_METH_PRIVATE
Attempt to call a private method from outside
,,DYN_CALL_METH_PROTECTED
Attempt to call a protected method from outside
,,DYN_CALL_METH_REF_IS_INITIAL
Attempt to call a method with an initial reference
,,EXPORT_BUFFER_NO_MEMORY
The EXPORT data cluster is too large for the application buffer
,,EXPORT_DATASET_CANNOT_OPEN
The IMPORT/EXPORT statement could not open the file
,,EXPORT_DATASET_WRITE_ERROR
The EXPORT statement could not write to the file
,,GENERATE_SUBPOOL_DIR_FULL
The system cannot generate any more temporary subroutine pools
,,IMPORT_ALIGNMENT_MISMATCH
Import error: Same sequence of components, but with type conflict or different alignment in structured data types
,,IMPORT_TYPE_MISMATCH
Import error: Only with IMPORT...FROM MEMORY | FROM SHARED BUFFER...
,,MOVE_CAST_ERROR
Type conflict when assigning between object and interface references (only MOVE...?TO... or operator ?=)
,,OPEN_DATASET_NO_AUTHORITY
No authorizatino to access the file
,,OPEN_PIPE_NO_AUTHORITY
No authorization to access the file (OPEN DATASET...FILTER...).
,,PERFORM_PROGRAM_NAME_TOO_LONG
Invalid program name with PERFORM statement
,,RMC_COMMUNICATION_FAILURE
Communication error with Remote Method Call
,,RMC_INVALID_STATUS
Status error with Remote Method Call
,,RMC_SYSTEM_FAILURE
System error with Remote Method Call
,,STRING_LENGTH_NEGATIVE
Invalid access with negative length to a string
,,STRING_LENGTH_TOO_LARGE
Invalid access to a string (length too large)
,,STRING_OFFSET_NEGATIVE
Invalid access with negative offset to a string
,,STRING_OFFSET_TOO_LARGE
Invalid access to a string (offset too large)
,,STRING_OFFSET_LENGTH_TOO_LARGE
Invalid access to a string (offset + length too large)
,,TEXTENV_CODEPAGE_NOT_ALLOWED
Character set is not released in the system (SET LOCALE...)
,,TEXTENV_INVALID
Error setting the text environment (SET LOCALE...)
,,TEXTENV_KEY_INVALID
With SET LOCALE...: Value of LANGUAGE, COUNTRY or MODIFIER that is not allowed in the system.
,,TEXTENV_LANGUAGE_NOT_ALLOWED
With SET LOCALE...: Invalid value of the LANGUAGE addition.
What version of SAP are you on? If on a newer version you may be able to create your own exception class.
Regards,
Rich Heilman
‎2006 Jun 30 2:32 PM
Refer the standard demo reports
DEMO_EXCEPTION_TEXT
DEMO_HANDLE_EXCEPTIONS
DEMO_LOCAL_EXCEPTION_1
DEMO_LOCAL_EXCEPTION_2
DEMO_LOCAL_EXCEPTION_3
DEMO_PROPAGATE_EXCEPTIONS
DEMO_RAISE_EXCEPTIONS
‎2006 Jun 30 2:22 PM
Hi
It should be:
CATCH SYSTEM-EXCEPTIONS WEIRD_ERROR = 4
IF DATA+1(5) <> TEXT-035.
ENDIF.
ENDCATCH.
But WEIRD_ERROR isn't in my system
Max