Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

What is the problem with the code?

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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

10 REPLIES 10

Former Member
0 Kudos

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

0 Kudos

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

0 Kudos

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

0 Kudos

I highly doubt that WEIRD_ERROR is a system exception. You must specific a valid system exception here.

Regards,

Rich Heilman

Former Member
0 Kudos

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>.

Former Member
0 Kudos

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

0 Kudos

But can I have a customized error? How should that be done? Thanks a lot!

Anyi

0 Kudos

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

0 Kudos

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

Former Member
0 Kudos

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