CX_SY_ZERODIVIDE  in program CL_SSF_XSF_UTILITIES==========CP

Hi guys,
I am getting a runtime error on compiling or activating my smartform, which says the exception is assigned to class 'CX_SY_ZERODIVIDE' , in program  "CL_SSF_XSF_UTILITIES==========CP", an arithmetic operation ('DIVIDE', '/', 'DIV' or 'MOD') with a type P operand attempted to divide by 0. I hav not used any division operation in the form. Plz help me

Hi priyanka,
Check if any  program lines have been included  regarding the calculations in the smartforms.
Regards,
Sravanthi

Similar Messages

  • Handling unexpected errors/situations in an ABAP program

    Hi,
    if i come across a situation where i need to handle a runtime error unexpectedly what should be my approach.
    for eg. if i build a dynamic select statement and if my logic goes wrong the program flow should proceed normally as if nothing has happened 'with out giving me a short dump' . what if im not sure about the type of error thats going to show up, is there any way?
    your help will be appreciated.
    Regards,
    ravi.

    Hi Ravi
    Not all exceptions can be overridden. FYI, Below are a list of exceptions that can be handled:
    Alphabetical Overview of Catchable Runtime Errors
    Below you find an alphabetical list of all catchable runtime errors. For each runtime error, the predefined exception class assigned is specified which is used to handle the respective runtime error as of Release 6.10. If an exception class is assigned to more than one catchable runtime error, it may contain as many message texts as required which you can find in the Class Builder on the Texts tab.
    Almost all of the runtime errors listed here are combined together in exception groups. These exception groups are also assigned those ABAP keywords at which the runtime errors contained can be caught.
    ADDF_INT_OVERFLOW
    Overflow at addition, type I ( ADD ... UNTIL / ADD ... FROM ... TO)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    ASSIGN_CASTING_ILLEGAL_CAST
    The components of the source field type and the target type which are strings, tables, or references do not have exactly the same offset and type.
    Exception class: CX_SY_ASSIGN_CAST_ILLEGAL_CAST
    ASSIGN_CASTING_UNKNOWN_TYPE
    The type specified at runtime is unknown.
    Exception class: CX_SY_ASSIGN_CAST_UNKNOWN_TYPE
    ASSIGN_FIELD_NOT_IN_RANGE
    The field is not within the RANGE specified.
    Exception class: CX_SY_ASSIGN_OUT_OF_RANGE
    BCD_FIELD_OVERFLOW
    Overflow at conversion / arithmetic operation (type P, with specified length)
    Exception class: CX_SY_CONVERSION_OVERFLOW
    BCD_OVERFLOW
    Overflow at conversion / arithmetic operation (type P)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    BCD_ZERODIVIDE
    Division by 0 (type P)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_ACOS_DOMAIN
    Invalid call of the mathematical function ACOS
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_ASIN_DOMAIN
    Invalid call of the mathematical function ASIN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_ATAN_DOMAIN
    Invalid call of the mathematical function ATAN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_BCD_OVERFLOW
    Overflow at arithmetic operation (all operands of type P)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_COSH_DOMAIN
    Invalid call of the mathematical function COSH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_COSH_OVERFLOW
    Overflow at mathematical function COSH
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_COS_DOMAIN
    Invalid call of the mathematical function COS
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_COS_LOSS
    Inaccurate result of function COS
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_EXP_DOMAIN
    Invalid call of the mathematical function EXP
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_EXP_RANGE
    Overflow or underflow at mathematical function EXP
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_DIV_OVERFLOW
    Overflow at division (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_MINUS_OVERFLOW
    Overflow at subtraction (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_PLUS_OVERFLOW
    Overflow at addition (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_TIMES_OVERFLOW
    Overflow at multiplication (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_ZERODIVIDE
    Division by 0 (type F)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_INT_ABS_OVERFLOW
    Integer overflow while calculating the absolute value
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_DIV_OVERFLOW
    Integer overflow at division
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_MINUS_OVERFLOW
    Integer overflow at subtraction
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_PLUS_OVERFLOW
    Integer overflow at addition
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_TIMES_OVERFLOW
    Integer overflow at multiplication
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_ZERODIVIDE
    Division by 0 (type I)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_LOG10_ERROR
    Invalid call of the mathematical function LOG10
    Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_LOG_ERROR
    Invalid call of the mathematical function LOG
    Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_MATH_DOMAIN
    Invalid call of a mathematical function
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_MATH_ERROR
    Error performing a mathematical function
    Exception class: None since this runtime error can no longer be caught
    COMPUTE_MATH_LOSS
    Inaccurate result of a mathematical function
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_MATH_OVERFLOW
    Overflow at a mathematical function
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_MATH_UNDERFLOW
    Underflow at a mathematical function
    Exception class: None since exception no longer occurs
    COMPUTE_POW_DOMAIN
    Invalid argument when using powers
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_POW_RANGE
    Overflow or underflow when using powers
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_SINH_DOMAIN
    Invalid call of the mathematical function SINH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_SINH_OVERFLOW
    Overflow at mathematical function SINH
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_SIN_DOMAIN
    Invalid call of the mathematical function SIN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_SIN_LOSS
    Inaccurate result of the function SIN
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_SQRT_DOMAIN
    Invalid call of the mathematical function SQRT
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TANH_DOMAIN
    Invalid call of the mathematical function TANH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TAN_DOMAIN
    Invalid call of the mathematical function TAN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TAN_LOSS
    Inaccurate result of the function TAN
    Exception class: CX_SY_PRECISION_LOSS
    CONNE_IMPORT_WRONG_COMP_DECS
    Import error; a component of a structured type in the dataset has wrong decimal places
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_COMP_LENG
    Import error; a component of a structured type in the dataset has the wrong length
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_COMP_TYPE
    Import error; a component of a structured type in the dataset has the wrong type
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_DECS
    Import error; a field in the dataset has wrong decimal places
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_LENG
    Import error; a field in the dataset has the wrong length
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_TYPE
    Import error; a field in the dataset has the wrong type
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_OBJECT_TYPE
    Import error; type conflict between simple and structured data types
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_STRUCTURE
    Import error; type conflict between structured objects
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONVT_CODEPAGE
    Character set conversion not possible for one or more characters
    Exception class: CX_SY_CONVERSION_CODEPAGE
    CONVT_CODEPAGE_INIT
    Conversion of texts between code pages not supported
    Exception class: CX_SY_CODEPAGE_CONVERTER_INIT
    CONVT_NO_NUMBER
    Value to be converted cannot be interpreted as a number
    Exception class: CX_SY_CONVERSION_NO_NUMBER
    CONVT_OVERFLOW
    Overflow at conversion (all types, not type P)
    Exception class: CX_SY_CONVERSION_OVERFLOW
    CREATE_DATA_ILLEGAL_DECIMALS
    Invalid value for the addition DECIMALS
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_ILLEGAL_INIT_SIZE
    Invalid value for the addition INITIAL SIZE
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_ILLEGAL_LENGTH
    Invalid value for the addition LENGTH
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_LEN_NOT_ALLOWED
    The addition LENGTH was used for a type other than C, N, X, or P
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_NOT_ALLOWED_TYPE
    The type specified dynamically in the addition TYPE is not typed completely.
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_UNKNOWN_TYPE
    The type specified in the addition TYPE is unknown.
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_OBJECT_CLASS_ABSTRACT
    You attempted to instantiate an abstract class.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CLASS_NOT_FOUND
    The class specified in the dynamic CREATE OBJECT was not found.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CREATE_PRIVATE
    You attempted to create an object of a class defined as 'CREATE PRIVATE'.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CREATE_PROTECTED
    You attempted to create an object of a class defined as 'CREATE PROTECTED'.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    DATA_LENGTH_NEGATIVE
    Invalid subfield access: Length negative
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_LENGTH_0
    Invalid subfield access: Length 0
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_LENGTH_TOO_LARGE
    Invalid subfield access: Length too large
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_NEGATIVE
    Invalid subfield access: Offset negative
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_LENGTH_TOO_LARGE
    Invalid subfield access: Offset + length too large
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_LENGTH_NOT_ALLOWED
    Invalid subfield access: Inadequate type
    Exception class: CX_SY_OFFSET_NOT_ALLOWED
    DATASET_CANT_CLOSE
    File could not be closed; there might be no more space in the file system.
    Exception class: CX_SY_FILE_CLOSE
    DATASET_CANT_OPEN
    File cannot be opened
    Exception class: CX_SY_FILE_OPEN
    DATASET_NO_PIPE
    OPEN DATASET with the addition FILTER is not supported on the current operating system.
    Exception class: CX_SY_PIPES_NOT_SUPPORTED
    DATASET_NO_POSITION
    Access to current read/write position of file not possible
    Exception class: CX_SY_FILE_POSITION
    DATASET_NOT_OPEN
    File not open
    Exception class: CX_SY_FILE_OPEN_MODE
    DATASET_OFFSET_TO_LARGE
    Offset specified exceeds the system limit
    Exception class: CX_SY_FILE_POSITION
    DATASET_PIPE_CLOSED
    Pipe for file closed
    Exception class: CX_SY_PIPE_REOPEN
    DATASET_READ_ERROR
    Error reading a file
    Exception class: CX_SY_FILE_IO
    DATASET_READ_ONLY
    File opened in read-only mode
    Exception class: CX_SY_FILE_OPEN_MODE
    DATASET_SEEK_ERROR
    Error positioning in a file
    Exception class: CX_SY_FILE_POSITION
    DATASET_TOO_MANY_FILES
    Maximum number of open files exceeded
    Exception class: CX_SY_TOO_MANY_FILES
    DATASET_WRITE_ERROR
    Error writing a file
    Exception class: CX_SY_FILE_IO
    DYN_CALL_METH_CLASSCONSTRUCTOR
    You attempted to call the class constructor.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_CLASS_ABSTRACT
    You attempted to call an abstract method.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
    DYN_CALL_METH_CLASS_NOT_FOUND
    You attempted to call a method of a class that does not exist.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
    DYN_CALL_METH_CONSTRUCTOR
    You attempted to call the instance constructor.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_EXCP_NOT_FOUND
    You attempted to catch an unknown exception.
    Exception class: CX_SY_DYN_CALL_EXCP_NOT_FOUND
    DYN_CALL_METH_NOT_FOUND
    You attempted to call an unknown method.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_NOT_IMPLEMENTED
    You attempted to call a method not yet implemented.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_NO_CLASS_METHOD
    You attempted to call an instance method through a class.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_PARAM_KIND
    You attempted to pass a parameter with a wrong parameter type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_LITL_MOVE
    You attempted to pass a constant actual parameter to a formal EXPORTING, CHANGING, or RETURNING parameter.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_MISSING
    A required parameter was not filled.
    Exception class: CX_SY_DYN_CALL_PARAM_MISSING
    DYN_CALL_METH_PARAM_NOT_FOUND
    You attempted to pass an unknown parameter.
    Exception class: CX_SY_DYN_CALL_PARAM_NOT_FOUND
    DYN_CALL_METH_PARAM_TAB_TYPE
    You attempted to pass a parameter with a wrong table type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_TYPE
    You attempted to pass a parameter with a wrong type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARREF_INITIAL
    An initial data reference was passed for a required parameter.
    Exception class: CX_SY_DYN_CALL_PARAM_MISSING
    DYN_CALL_METH_PRIVATE
    You attempted to call a private method outside.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_PROTECTED
    You attempted to call a protected method outside.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_REF_IS_INITIAL
    You attempted to call a method to an initial reference.
    Exception class: CX_SY_REF_IS_INITIAL
    EXPORT_BUFFER_NO_MEMORY
    The EXPORT data cluster is too large for the application buffer.
    Exception class: CX_SY_EXPORT_BUFFER_NO_MEMORY
    EXPORT_DATASET_CANNOT_OPEN
    The IMPORT/EXPORT statement was unable to open the file.
    Exception class: CX_SY_FILE_OPEN
    EXPORT_DATASET_WRITE_ERROR
    The Export statement could not write the file.
    Exception class: CX_SY_FILE_IO
    GENERATE_SUBPOOL_DIR_FULL
    The system is unable to generate another temporary subroutine pool.
    Exception class: CX_SY_GENERATE_SUBPOOL_FULL
    IMPORT_ALIGNMENT_MISMATCH
    Import error; identical sequence of components but with type conflict or with different integration into structured data types
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    IMPORT_TYPE_MISMATCH
    Import error; only at IMPORT...FROM MEMORY | FROM SHARED BUFFER...
    Exception class: None since this runtime error can not longer be caught
    IMPORT_WRONG_END_POS
    Import error; dataset has a different length.
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    MOVE_CAST_ERROR
    Type conflict assigning between object and/or interface references (only MOVE...?TO... or operator ?=)
    Exception class: CX_SY_MOVE_CAST_ERROR
    OPEN_DATASET_NO_AUTHORITY
    No authorization to access a file
    Exception class: CX_SY_FILE_AUTHORITY
    OPEN_PIPE_NO_AUTHORITY
    No authorization to access a file (OPEN DATASET...FILTER...)
    Exception class: CX_SY_FILE_AUTHORITY
    PERFORM_PROGRAM_NAME_TOO_LONG
    Invalid program name in the PERFORM statement
    Exception class: CX_SY_PROGRAM_NOT_FOUND
    REFI_WRONG_SECTION
    Wrong offset/length specification in the REPLACE statement
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    REPLACE_INFINITE_LOOP
    SECTION of length 0 in the REPLACE statement
    Exception class: CX_SY_REPLACE_INFINITE_LOOP
    RMC_COMMUNICATION_FAILURE
    Communication error during Remote Method Call
    Exception class: CX_SY_RMC_COMM_FAILURE
    RMC_INVALID_STATUS
    State error during Remote Method Call
    Exception class: CX_SY_RMC_INVALID_STATUS
    RMC_SYSTEM_FAILURE
    System error during Remote Method Call
    Exception class: CX_SY_RMC_SYSTEM_FAILURE
    STRING_LENGTH_NEGATIVE
    Invalid access with negative length to a string
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_LENGTH_TOO_LARGE
    Invalid access to a string (length too large)
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_NEGATIVE
    Invalid access with negative offset to a string
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_TOO_LARGE
    Invalid access to a string (offset too large)
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_LENGTH_TOO_LARGE
    Invalid access to a string (offset + length too large)
    Exception class: CX_SY_LOCALIZATION_ERROR
    TEXTENV_CODEPAGE_NOT_ALLOWED
    Character set not released in the system (SET LOCALE...)
    TEXTENV_INVALID
    Error setting the text environment (SET LOCALE...)
    Exception class: CX_SY_LOCALIZATION_ERROR

  • Example program for returninng and importing with value addition

    HI ,
    I want few example programs on how to use the abap oops with returning addition and importing with value addition as Im getting syntax error for the Program when Im declaring them with these additions
    Thnaks .

    Hello,
    This statement declares a general instance method meth. Use additions ABSTRACT and FINAL to make the method abstract or final.
    The additions IMPORTING, EXPORTING and CHANGING define the parameter interface of the method. After every addition, the corresponding formal parameters are defined by a specification of the list parameters.
    The other additions determine which exceptions the method can propagate or trigger and determine whether the method is abstract or final.
    Note
    Within a method, you can use the logical expression IS SUPPLIED to check whether an actual parameter was assigned to an optional formal parameter at the call.
    Addition 1
    ... IMPORTING parameters PREFERRED PARAMETER p
    Effect
    IMPORTING defines input parameters. When calling the method, you need not specify an appropriate actual parameter for every non-optional input parameter. During the call, the content of the actual parameter is passed to the input parameter. The content of the input parameter - for which the reference transfer is defined - cannot be changed in the method.
    Use PREFERRED PARAMETER to identify an input parameter p1 p2 ... of list parameters after IMPORTING as a preferred parameter. This specification makes sense only if all input parameters are optional. When calling the method with the syntax
    CALL METHOD meth( a ).
    the actual parameter a is assigned to the preferred parameter if you have appropriate use of a functional method at an operand position.
    Addition 2
    ... EXPORTING parameters
    Effect
    EXPORTING defines output parameters. When calling the method, you can specify an appropriate actual parameter for every output parameter. The content of the output parameter - which is defined for value transfer - is passed to the actual parameter at the call after the method has been completed successfully.
    Note
    An output parameter that is defined for the reference transfer is not initialized when the method is called. Therefore, no read access to it should take place before the first write access.
    Addition 3
    ... CHANGING parameters
    Effect
    CHANGING defines input/output parameters. When calling the method, you must specify an appropriate actual parameter for every non-optional input/output parameter. The content of the actual parameter is passed to the input/output parameter at the call, and after the method has been completed, the content of the input/output parameter is passed to the actual parameter.
    Example
    The method read_spfli_into_table of this example has an input and an output parameter, which are typed fully by reference to the ABAP Dictionary.
    CLASS flights DEFINITION.
      PUBLIC SECTION.
        METHODS read_spfli_into_table
           IMPORTING VALUE(id)  TYPE spfli-carrid
           EXPORTING flight_tab TYPE spfli_tab.
    ENDCLASS.
    Addition 4
    ... RAISING exc1 exc2 ...
    Effect
    Use addition RAISING to declare the class-based exceptions exc1 exc2 ... that can be propagated from the method to the caller.
    For exc1 exc2 ..., you can specify all exception classes that are visible at this position and are subclasses of CX_STATIC_CHECK or CX_DYNAMIC_CHECK. You must specify the exception classes in ascending order corresponding to their inheritance hierarchy.
    Exceptions of the categories CX_STATIC_CHECK and CX_DYNAMIC_CHECK must be declared explicitly, otherwise a propagation results in a violation of the interface. An interface violation results in a treatable exception CX_SY_NO_HANDLER. Exceptions of category CX_NO_CHECK are always implicitly declared.
    Notes
    The declaration of exceptions of category CX_STATIC_CHECK is checked statically at the syntax check. For exceptions of category CX_DYNAMIC_CHECK, the check is executed at runtime.
    In a method in which class-based exceptions are declared with the addition RAISING, you cannot use the statement CATCH SYSTEM-EXCEPTIONS. Instead, handle the relevant treatable exceptions in a TRY control structure.
    Example
    In class math, you can propagate all exceptions represented by class CX_SY_ARITHMETIC_ERROR and its subclasses from within method divide_1_by. If, for example, the input parameter operand is filled at the call with the value 0, then the exception CX_SY_ZERODIVIDE is triggered, propagated, and can, as shown in the example, be handled by the caller in a TRY control structure.
    CLASS math DEFINITION.
      PUBLIC SECTION.
        METHODS divide_1_by
           IMPORTING operand TYPE I
           EXPORTING result  TYPE f
           RAISING   cx_sy_arithmetic_error.
    ENDCLASS.
    CLASS math IMPLEMENTATION.
      METHOD divide_1_by.
        result = 1 / operand.
      ENDMETHOD.
    ENDCLASS.
    START-OF-SELECTION.
    DATA oref TYPE REF TO math.
    DATA exc  TYPE REF TO cx_sy_arithmetic_error.
    DATA res  TYPE f.
    DATA text TYPE string.
    CREATE OBJECT oref.
    TRY.
        oref->divide_1_by( EXPORTING operand = 4
                           IMPORTING result = res ).
        text = res.
      CATCH cx_sy_arithmetic_error INTO exc.
        text = exc->get_text( ).
    ENDTRY.
    MESSAGE text TYPE 'I'.
    Addition 5
    ... EXCEPTIONS exc1 exc2 ...
    Effect
    Use addition EXCEPTIONS to define a list of non-class-based exceptions exc1 exc2..., which can be triggered with the statements RAISE or MESSAGE RAISING in the method. You specify identifiers exc1 exc2 ... for the exceptions to be defined at will and directly. Exceptions defined in this way are bound to the method - similar to formal parameters - and cannot be propagated.
    If such an exception is triggered in a method and no return value has been assigned to it in the addition EXCEPTIONS of the CALL METHOD statement in the method call, then a runtime error occurs.
    Note
    The additions RAISING and EXCEPTIONS cannot be used simultaneously. For new developments starting at release 6.10, we recommend to use class-based exceptions, which are independent of the respective method.
    Example
    In the class math, for method divide_1_by an exception arith_error is defined, which is triggered in the method with the RAISE statement if an arithmetic error occurs. If, for example, the input parameter operand is filled with value 0 at the call, the exception arith_error is triggered in the method-internal handling of exception CX_SY_ZERODIVIDE and handled after the call of the method by evaluating sy-subrc.
    CLASS math DEFINITION.
      PUBLIC SECTION.
        METHODS divide_1_by
           IMPORTING  operand TYPE I
           EXPORTING  result  TYPE f
           EXCEPTIONS arith_error.
    ENDCLASS.
    CLASS math IMPLEMENTATION.
      METHOD divide_1_by.
        TRY.
            result = 1 / operand.
          CATCH cx_sy_arithmetic_error.
            RAISE arith_error.
        ENDTRY.
      ENDMETHOD.
    ENDCLASS.
    START-OF-SELECTION.
    DATA res  TYPE f.
    DATA oref TYPE REF TO math.
    CREATE OBJECT oref.
    oref->divide_1_by( EXPORTING  operand = 4
                       IMPORTING  result  = res
                       EXCEPTIONS arith_error = 4 ).
    IF sy-subrc = 0.
      WRITE res.
    ELSE.
      WRITE 'Arithmetic error!'.
    ENDIF.
    Regards.

  • Payroll Runtime error - Division by 0 (type P) in program "RPCTX0KC"

    Dear All,
    I am running Canadian Payroll on ECC 6.0 (Curent HRSP level is 40 SAPKE60040) . when I run the transaction : PC00_M07_CALC_SIMU it throws ABAP Dump.
    Standard Schema (Tcode : PE01) --> K000 is used in running payroll. Currently if I dont want this dump to occur I will have to put a line in comments. -> " 000200 COPY KTX0 * Calculate taxes ". But this line is important for Calculation of Taxes.
    Can you please let me know what can be done about it? Is this anything to be done with any Patch or Note or ABAP correction?
    ABAP Dump Error :
    Runtime Errors BCD_ZERODIVIDE
    Except. CX_SY_ZERODIVIDE
    Date and Time 17.07.2009 11:53:58
    Short text
    Division by 0 (type P) in program "RPCTX0KC"
    What happened?
    Error in the ABAP Application Program
    The current ABAP program "RPCTX0KC" had to be terminated because it ha
    come across a statement that unfortunately cannot be executed.
    Error analysis
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_ZERODIVIDE', was not caught in
    procedure "PP_CONTRIBUTIONS_EE" "(FORM)", nor was it propagated by a RAISING
    clause.
    Since the caller of the procedure could not have anticipated that the
    exception would occur, the current program is terminated.
    The reason for the exception is:
    In the current program "RPCTX0KC", an arithmetic operation ('DIVIDE',
    '/', 'DIV' or 'MOD') with a type P operand attempted to divide
    by 0.
    Missing RAISING Clause in Interface
    Program RPCTX0KC
    Include RPCTXSK3
    Row 75
    Module type (FORM)
    Module Name PP_CONTRIBUTIONS_EE
    Trigger Location of Exception
    Program RPCTX0KC
    Include RPCTXSK3
    Row 117
    Module type (FORM)
    Module Name PP_CONTRIBUTIONS_EE
    Source Code Extract
    Line SourceCde ......................... ( This starts at Line 87 - goes to Line 136)
    Regards

    Dear Monu,
    IS this hapening after recent patch updates or after any Notes application ?
    The exception is at reading PC294 i.e., Payroll results from Infotypes 0461-463...
    Please check it again..
    Regards
    ...Sadhu

  • Problem with threads, program always crash

    new to threads, may be doing something COMPLETELY wrong. When I run the program I get a couple of NullPointerExceptions in Thread-0 and Thread-1. I'm confused because it screws up when I call size() for arrayList, and in the API size doesn't throw anything.
    public class ProducerConsumerRunner
       public static void main(String args[])
          Queue q = new Queue(QUEUE_MAX_SIZE);
          ProducerRunnable producer = new ProducerRunnable(q, ITERATIONS);
          ConsumerRunnable consumer = new ConsumerRunnable(q, ITERATIONS);
          //works good up to here
          Thread t1 = new Thread(producer);
          Thread t2 = new Thread(consumer);
          t1.start();
          t2.start();
       private static int ITERATIONS = 50;
       private static int QUEUE_MAX_SIZE = 25;
    import java.util.ArrayList;
    import java.util.concurrent.locks.ReentrantLock;
    public class Queue {
         public Queue(int maxSize)
              list = new ReentrantLock();
              underLimit = list.newCondition();
              MAX_SIZE = maxSize;
         public void add(String line)
              list.lock();
              try{
                           System.out.println("add method of Queue");
                   while(record.size() >= MAX_SIZE){//things get screwed up when this condition is evaluated
                        //size method is crashing the program
                        System.out.println("2");
                        underLimit.await();
                        System.out.println("3");
                   record.add(line);
              }catch(java.lang.InterruptedException e){
                   System.out.println("await interupted: "+e.getMessage());
              }finally{
                   list.unlock();
         public void remove(int line)
              list.lock();
              record.remove(line);
              list.unlock();
         public  ArrayList<String> record;
         private final ReentrantLock list;
         private final java.util.concurrent.locks.Condition underLimit;
         private final int MAX_SIZE;
    import java.util.Date;
    public class ProducerRunnable implements Runnable{
         public ProducerRunnable(Queue q, int itterations)
              this.q = q;
              ITTERATIONS = itterations;
         public void run()
              String date;
              for(int i = 0; i<ITTERATIONS; i++)
                   date = new Date().toString();
                   q.add(date);//this is where it screws up
                   System.out.println(date+" added");
                   try{
                   Thread.sleep(100);
                   }catch(java.lang.InterruptedException e){
                        System.out.println("ProduccerRunnable's sleep was interupted");
         private final Queue q;
         private final int ITTERATIONS;
    public class ConsumerRunnable implements Runnable{
         public ConsumerRunnable(Queue q, int itterations)
              this.q = q;
              ITTERATIONS = itterations;
         public void run()
              //Queue q = new Queue();
              int length;
              for(int i = 0; i<ITTERATIONS; i++)
                   length = q.record.size();//things are getting screwed up here
                   while(q.record.get(length) == null)
                        length--;
                   System.out.println((String)q.record.get(length));
                   q.remove(length);
                   try{
                   Thread.sleep(100);
                   }catch(java.lang.InterruptedException e){
                        System.out.println("ConsumerRunnable's sleep was interupted");
         private final Queue q;
         private final int ITTERATIONS;
    }

    question:
    this works right
         public void remove()
              list.lock();
              int line = 0;
              try{
                   *while(record.size() < 1)*
                        range.await();
                   record.remove(line);
                   range.signalAll();
              }catch(java.lang.InterruptedException e){
                   System.out.println("await interupted: "+e.getMessage());
              }finally{
                   list.unlock();
         }this is deadlock
    *int list = 0;*
    *while((list = record.size)<1) was screwing things up because of the assignment*record is ArrayList of strings. when better to use Vector instead of ArrayList? i notice no differnce and i use threads
    initially I thought record.size was being evaluated and before could be assigned to list, time slice ran out. this could not be case because I use ReentrantLock (list) to lock it.
    Edited by: bean-planet on Apr 1, 2009 4:31 PM

  • ITunes & Windows Vista Home - Error File C:\Program Data\Apple Computer\Installer\Cache\iTunes 10.5.142\iTunes.msi was rejected by digital signature policy.

    Tried
    https://discussions.apple.com/thread/2713232?start=0&tstart=0
    and
    http://www.vistax64.com/vista-general/159940-computer-blocking-anything-no-digit al-signature.html
    with no avail!!!
    iTunes opens after I click OK on the above message however I cannot do anything within the app its like Windows it preventing it from running.
    PLEASE HELP!!!

    Update:
    I tried what the diagnostic told me to do, and repaired the installation. I was able to burn a CD in iTunes, but after I restarted, the drives have disappeared again! Here's the diagnostic info now:
    Microsoft Windows Vista Home Edition (Build 6000)
    MICRO-STAR INC. MS-6728
    iTunes 7.6.0.29
    QuickTime 7.4
    CD Driver 2.0.6.1
    CD Driver DLL 2.0.6.2
    Apple Mobile Device 1.1.3.26
    iTunes Serial Number 20D6EAF059AB94B4
    Current user is not an administrator.
    The current local date and time is 2008-01-15 19:09:32.
    iTunes is not running in safe mode.
    Video Display Information
    ATI Technologies Inc., Radeon X1600/X1650 Series
    ATI Technologies Inc., Radeon X1600/1650 Series Secondary
    ** External Plug-ins Information **
    Plug-in Name: Last.fm iTunes plugin
    Plug-in Loaded: Yes
    Plug-in Version: 0.0.13
    Plug-in File Version: 2.0.13.0
    Plug-in Path: C:\Program Files\iTunes\Plug-ins\itw_scrobbler.dll
    No drives showed up to be tested.

  • Error while running a Java Program

    Can anyone help me,
    I am getting the following error while running a Java program, Below is the exception thrown, please help.
    java.nio.BufferOverflowException
    at java.nio.Buffer.nextPutIndex(Buffer.java:425)
    at java.nio.DirectByteBuffer.putChar(DirectByteBuffer.java:463)
    at org.jetel.data.StringDataField.serialize(StringDataField.java:295)
    at org.jetel.data.DataRecord.serialize(DataRecord.java:283)
    at org.jetel.graph.DirectEdge.writeRecord(DirectEdge.java:216)
    at org.jetel.graph.Edge.writeRecord(Edge.java:288)
    at com.tcs.re.component.RESummer1.run(RESummer1.java:505)
    java.nio.BufferOverflowException
    at java.nio.Buffer.nextPutIndex(Buffer.java:425)
    at java.nio.DirectByteBuffer.putChar(DirectByteBuffer.java:463)
    at org.jetel.data.StringDataField.serialize(StringDataField.java:295)
    at org.jetel.data.DataRecord.serialize(DataRecord.java:283)
    at org.jetel.graph.DirectEdge.writeRecord(DirectEdge.java:216)
    at org.jetel.graph.Edge.writeRecord(Edge.java:288)
    at com.tcs.re.component.RECollectCont.run(RECollectCont.java:304)

    Ok, let's see. Write the following class:
    public class Grunt {
      public static void main(String[] args) {
        System.out.println("Hello Mars");
    }Save it as "C:\Grunt.java", compile by typing:
    javac c:\Grunt.javaRun by typing:
    java -classpath "C:\" GruntDoes it say "Hello Mars"? If yes, go back to your program and compare for differences (maybe you used the "package" statement?).
    Regards

  • How do I install all my old programs and data from an old system folder after I have reinstalled the same OSX system after a crash?

    The system is OSX10.5.8 Leopard on a 2009 imac. A new system was installed from the installation disks and the original system saved to a folder.
    I need to use my Adobe programs, rescue my email, i-tunes and iphoto data.  The disk utility indicates that my Time Machine back-up disk is damaged and I don't want to take a risk of having Time Machine erase my hard drive and try to reinstall the exact system existing at the time of the crash.  There was over 650 gb of stored files that I was copying and removing from the drive at the time it crashed. The total size of the original system file is still about 650 Gb.
    I would prefer to go back in Time Machine and only rescue the programs as most of the files have been copied to external hard drives, but I can't access the back-up hard drive from the new version of the Time Machine.  Or by I don't want the Time Mchine to start copying the new operating system which would include all the data in the old system file. Time Machine was working fine at the time of the crash.

    No, the disk was backed up with time machine a few hours prior to the crash.  I was unable to open the computer when I tried to restart it- got a grey screen with the spinning disk- after a few minutes the screen would go black and would reboot continuously, but not load any images or programs. I started the computer from the 10.5.4 installation disks and checked both the time machine external hard drive and the Imac internal drive with the disk utilities. Both showed as damaged --the internal drive and permissions were repaired, but the external drive (time machine back-up)  was damaged and not repairable by disk utilities. I don't believe that the external drive for Time Machine was connected to the computer at the time of the crash as I was copying files to a different hard drive drive. And I was not having any problems with the TM back-up drive prior to the crash.
    I accessed the Imac internal disk by firewire (as a target disk) and copied as many data files as I had room for on my external hard drives available.  And I deleted quite a few files from the imac internal drive (mostly just jpegs, duplicate tifs, etc--nothing that was used by i-photos, i-tunes or the Mail program).
    Then I installed a new OSX10.5.4 system from the installation disk and the old system was moved to a folder on the hard drive.  I previousy had had the option to reinstall the complete system from Time Machine when I connected that drive and booted with the installation disks with the C key depressed.  But it didn't seem like a good option because I was unsure of the condition of that external disk and whether it would be able to reinstall my data correctly, once it had erased my internal hard drive. 
    I'm considering buying some new external hard drives and backing up the present system to time Machine (so I'll still have my old data in the old system folder).  And then I would try using the old Time Machine back-up to try to reinstall the sytem previous to the crash.  That back-up would reinstall about 700gb of data and operating software and programs which sounds like a lengthy back-up.  Since I have never used Time Machine to do a full reinstallation (I've only used it for individual files), I'm reluctant to do anything rash.
    I'm a professional designer (with a deadline) but I can still use my Illustrator and Photoshop by opening them from the old system folder and saving the files to an external drive.  So it's not neccessary to do anything hasty except to delete some of the excess art and document files that were causing the computer to run slowly and the  Adobe programs to crash when I tried to save my work. I have quite a few books on tape in the i-tumes folder which is probably talking up tons of space but I don't where the i-tunes files live.
    Thanks for any help. Peggy
    Message was edited by: peggy toole

  • Error:  "Could not complete your request because of a program error" (photoshop CS2 9.0.2 on MAC OSX

    Today I started my program (photoshop CS2 9.0.2) and opened a JPG file. When I went to print the file the program crashed and closed. When I restarted the program and went to open the file I got this error message, "Could not complete your request because of a program error".
    I have tried several different file types/sizes and all result in the same error message since the program crashed. It will not open any file I try to open. As I indicated above I am using Photoshop CS2 9.0.2 it is on a MAC with OSX 10.4.11.
    I called Adobe and the Rep directed me to Tech Note 331307 and told me to Re-create the Photoshop preferences files. Which I did and restarted the program, but when I tried to open a file (any file) I still get the same error message so it doesn't appear to be the preferences.
    Does anyone have any info as to what the problem may be and how to correct it.
    Thanks

    Thanks for the response. OK... This is the first day I have been able to get back to the problem.
    My system I am running Photoshop on is a Power Mac G4, AGP Graphics ATY Rage 128Pro chip set 16MB VRAM LCD 1280x1024 32-bit color, 500MHz, 1.75GB of memory, 1 MB L2 Cache, 100 MHz Bus Speed. I had installed the latest security update and repaired the permissions the day the problem started.
    Now to day I started the system and went in and created a Guest Account. I logged into the guest account and started Photoshop. Low and behold it worked just fine. So I logged out of guest and logged into my main user account And started Photoshop. Wouldn't you know it.... It works just fine. I can open any file I want with now problems.
    I got to thinking after I had done all of this that I wished I had tried to open a file in Photoshop today prior to creating the guest account to see if it still had the problem in my main user account.
    I did not change anything else on the system and all seems to work fine now. So at his point I am really not sure what the problem was.
    Again thanks for taking the time to respond to this issue.

  • Photoshop CS2 (program error msg)... Help please!!

    I have installed the full creative suite 2 on my new iMac. everything works fine except photoshop?!!?
    Illustrator works great, In-Design works great, But when i try to open a file or create a new page in PS it tells me "Could not create document because of a program error"???? ***?
    I had a previous version of CS and it worked fine for one day, then that started happening. I installed the CS2 trial version, and it would still give me the same error msg. I erased everything and installed the new CS2 (photoshop, illustrator , in-design and acrobat). It still gives me the same darn msg.???
    Any help would be greatly appreciated!
    thanks

    See the Adobe Knowledge Base document"Error 'Could not complete your request...' or 'Could not create a new document...' (Photoshop CS2 on Mac OS X v10.4)"
    I suggest whenever you have problems with third-party applications, the first place to start troubleshooting is with the application's documentation, then vendor's web site. Usually their sites have FAQs, lists of known bugs, or application-specific forums similar to these Discussions. Sometimes, unlike the Apple Discussions, the questions are even answered by employees of the vendor.
    The document cited above was found in 10 seconds by searching the Adobe support site.
    Good luck!
    Dr. Smoke
    Author: Troubleshooting Mac® OS X

  • PhotoShop CS2 "Program Error" when printing

    I am posting this to the Adobe Forums as well, but thought someone here might have some ideas. am having an intermittent problem printing from PhotoShop CS2 to an Epson 9800. When printing large files (200 MB average) to the Epson, PhotoShop will spool the job, taking about 50% longer than normal, and when complete, displays the following message..."The file XXXX.tif could not be printed because of a program error" No job ever gets to the print que. This happens about 80% of the time when printing. Quitting and restarting PhotoShop generally fixes the problem, and the file can be printed from another computer without issue, so this is not file specific. I have 8GB of RAM installed and PhotoShop running under 100% available memory, cache level at 8, with a dedicated 180GB scratch disk. Memory should NOT be the problem, though I do often have the full layered version of the file open in the background (I am printing from a flattened copy. I have observed that the problem is less likely to occur if no other files are open. I have a second G5 with the exact same software setup (OS, Print Driver and PhotoShop down to the decimal version #) that works perfectly every time. I have run all of the System utilities (Repair Permissions, FSCK, etc), reset the OSX printing system, reset PS preferences, trashed and re installed CS, as well as the Epson printer driver, all with no success. Any other trouble shooting ideas would be greatly appreciated. I would love to avoid a System reinstall.

    See the Adobe Knowledge Base document"Error 'Could not complete your request...' or 'Could not create a new document...' (Photoshop CS2 on Mac OS X v10.4)"
    I suggest whenever you have problems with third-party applications, the first place to start troubleshooting is with the application's documentation, then vendor's web site. Usually their sites have FAQs, lists of known bugs, or application-specific forums similar to these Discussions. Sometimes, unlike the Apple Discussions, the questions are even answered by employees of the vendor.
    The document cited above was found in 10 seconds by searching the Adobe support site.
    Good luck!
    Dr. Smoke
    Author: Troubleshooting Mac® OS X

  • KABA connection issue - program not registered

    I am trying to troubleshoot a connection error between SAP and KABA.  I have the RFC created in SAP and when I test the connection I get a program not registered.  The KABA "amsproc" service on the KABA side has been restarted, we have occasionally received a password locked message in the SAP system log after restarting the KABA service (I believe this means SAP and KABA are communicating).  We have since reset the password, but we can not successfully test the RFC and when attempting to send IDOC's out we get the program not registered error.  Is there something on the SAP side that needs to be done to register the program or is starting the service on the KABA side going to register the program with SAP?  Any assistance would be appreciated.

    Hi,
    In Central Management Console ie, Admin application of BOE, you need to configure the BW system. Use the below URL,
    http://<serverhostname>:<port>/CmcApp
    After logging in Select the Authentication and SAP as authentication type.  Regarding how to configure, follow the configuration steps mentioned in the below article:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a00ee3b2-5283-2b10-f1bf-8c6413e0898f
    Once you import the roles with the above configuration, the user with which you are validating the RFC connection will be imported in the BOE.
    Now, verify the RFC in the BW system.
    Regards,
    Noor.

  • Help me to Edit this program

    Hi All,
    Can anyone kind enought to help me to add the START and STOP button for this "bouncing ball" program that i got from the internet ? Below is the java coding.
    import java.awt.*;
    import java.applet.*;
    class Obstacle
         public Rectangle r;
         Graphics g;
         public Obstacle(int x,int y,int w,int h)
              r=new Rectangle(x,y,w,h);
         public void paint(Graphics gr)
              g=gr;
              g.setColor(Color.lightGray);
              g.draw3DRect(r.x,r.y,r.width,r.height,true);
    class CollideBall
         int width, height;
         public static final int diameter=20;
         //coordinates and value of increment
         double x, y, xinc, yinc, coll_x, coll_y;
         boolean collide;
         Color color;
         Graphics g;
         Rectangle r;
         //the constructor
         public CollideBall(int w, int h, int x, int y, double xinc, double yinc, Color c)
              width=w;
              height=h;
              this.x=x;
              this.y=y;
              this.xinc=xinc;
              this.yinc=yinc;          
              color=c;          
              r=new Rectangle(150,80,130,90);
         public double getCenterX() {return x+diameter/2;}
         public double getCenterY() {return y+diameter/2;}
         public void alterRect(int x, int y, int w, int h)
              r.move(x,y);
              r.resize(w,h);
         public void move()
              if (collide)
                   double xvect=coll_x-getCenterX();
                   double yvect=coll_y-getCenterY();
                   if((xinc>0 && xvect>0) || (xinc<0 && xvect<0))
                        xinc=-xinc;
                   if((yinc>0 && yvect>0) || (yinc<0 && yvect<0))
                        yinc=-yinc;
                   collide=false;
              x+=xinc;
         y+=yinc;
              //when the ball bumps against a boundary, it bounces off
         if(x<6 || x>width-diameter)
              xinc=-xinc;
                   x+=xinc;
              if(y<6 || y>height-diameter)
              yinc=-yinc;
                   y+=yinc;
              //cast ball coordinates to integers
              int x=(int)this.x;
              int y=(int)this.y;
              //bounce off the obstacle
              //left border
              if(x>r.x-diameter&&x<r.x-diameter+7&&xinc>0&&y>r.y-diameter&&y<r.y+r.height)
              xinc=-xinc;
                   x+=xinc;
              //right border
              if(x<r.x+r.width&&x>r.x+r.width-7&&xinc<0&&y>r.y-diameter&&y<r.y+r.height)
              xinc=-xinc;
                   x+=xinc;
              //upper border
              if(y>r.y-diameter&&y<r.y-diameter+7&&yinc>0&&x>r.x-diameter&&x<r.x+r.width)
                   yinc=-yinc;
                   y+=yinc;
              //bottom border
              if(y<r.y+r.height&&y>r.y+r.height-7&&yinc<0&&x>r.x-diameter&&x<r.x+r.width)
                   yinc=-yinc;
                   y+=yinc;
         public void hit(CollideBall b)
              if(!collide)
                   coll_x=b.getCenterX();
                   coll_y=b.getCenterY();
                   collide=true;
         public void paint(Graphics gr)
              g=gr;
              g.setColor(color);
              //the coordinates in fillOval have to be int, so we cast
              //explicitly from double to int
              g.fillOval((int)x,(int)y,diameter,diameter);
              g.setColor(Color.white);
              g.drawArc((int)x,(int)y,diameter,diameter,45,180);
              g.setColor(Color.darkGray);
              g.drawArc((int)x,(int)y,diameter,diameter,225,180);
    public class BouncingBalls extends Applet implements Runnable
         Thread runner;     
         Image Buffer;
    Graphics gBuffer;          
    CollideBall ball[];
         Obstacle o;
    //how many balls?
    static final int MAX=10;
         boolean intro=true,drag,shiftW,shiftN,shiftE,shiftS;
         boolean shiftNW,shiftSW,shiftNE,shiftSE;
         int xtemp,ytemp,startx,starty;
         int west, north, east, south;
         public void init()
              Buffer=createImage(size().width,size().height);
              gBuffer=Buffer.getGraphics();                         
              ball=new CollideBall[MAX];
              int w=size().width-5;
              int h=size().height-5;          
              //our balls have different start coordinates, increment values
              //(speed, direction) and colors
              ball[0]=new CollideBall(w,h,50,20,1.5,2.0,Color.orange);
    ball[1]=new CollideBall(w,h,60,210,2.0,-3.0,Color.red);
    ball[2]=new CollideBall(w,h,15,70,-2.0,-2.5,Color.pink);
    ball[3]=new CollideBall(w,h,150,30,-2.7,-2.0,Color.cyan);
    ball[4]=new CollideBall(w,h,210,30,2.2,-3.5,Color.magenta);
              ball[5]=new CollideBall(w,h,360,170,2.2,-1.5,Color.yellow);
              ball[6]=new CollideBall(w,h,210,180,-1.2,-2.5,Color.blue);
              ball[7]=new CollideBall(w,h,330,30,-2.2,-1.8,Color.green);
              ball[8]=new CollideBall(w,h,180,220,-2.2,-1.8,Color.black);
              ball[9]=new CollideBall(w,h,330,130,-2.2,-1.8,Color.gray);
              o=new Obstacle(150,80,130,90);
              west=o.r.x;
              north=o.r.y;
              east=o.r.x+o.r.width;
              south=o.r.y+o.r.height;
         public void start()
              if (runner == null)
                   runner = new Thread (this);
                   runner.start();
    public void stop()
              if (runner != null)
         runner.stop();
         runner = null;
         public void run()
              while(true)
                   Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
                   try {runner.sleep(15);}
         catch (Exception e) { }               
                   //move our balls around
                   for(int i=0;i<MAX;i++)
                        ball.move();
                   handleCollision();
                   repaint();     
         boolean collide(CollideBall b1, CollideBall b2)
              double wx=b1.getCenterX()-b2.getCenterX();
              double wy=b1.getCenterY()-b2.getCenterY();
              //we calculate the distance between the centers two
              //colliding balls (theorem of Pythagoras)
              double distance=Math.sqrt(wx*wx+wy*wy);
              if(distance<b1.diameter)                         
                   return true;          
                   return false;     
         void changeCursor(int x, int y)
              Rectangle r=new Rectangle(o.r.x+1,o.r.y+1,o.r.width-1,o.r.height-1);
              Frame BrowserFrame;
              Component ParentComponent;
              ParentComponent = getParent();
              while ( ParentComponent != null &&
              !(ParentComponent instanceof Frame))           
              ParentComponent = ParentComponent.getParent();          
              BrowserFrame = (Frame) ParentComponent;
              if(shiftNW||shiftSE)
                   BrowserFrame.setCursor(Frame.SE_RESIZE_CURSOR);
              else if(shiftNE||shiftSW)
                   BrowserFrame.setCursor(Frame.SW_RESIZE_CURSOR);
              else if(shiftW)
                   BrowserFrame.setCursor(Frame.W_RESIZE_CURSOR);
              else if(shiftN)
                   BrowserFrame.setCursor(Frame.N_RESIZE_CURSOR);
              else if(shiftE)
                   BrowserFrame.setCursor(Frame.W_RESIZE_CURSOR);
              else if(shiftS)
                   BrowserFrame.setCursor(Frame.N_RESIZE_CURSOR);
              else if(r.inside(x,y))
                   BrowserFrame.setCursor(Frame.MOVE_CURSOR);
              else
                   BrowserFrame.setCursor(Frame.DEFAULT_CURSOR);
         public boolean mouseMove(Event evt,int x,int y)
              //the corner areas of the obstacle
              Rectangle nw,sw,ne,se;
              nw=new Rectangle(o.r.x-2,o.r.y-2,4,4);
              if(nw.inside(x,y))
                   shiftNW=true;
              else shiftNW=false;
              sw=new Rectangle(o.r.x-2,o.r.y+o.r.height-2,4,4);
              if(sw.inside(x,y))
                   shiftSW=true;
              else shiftSW=false;
              ne=new Rectangle(o.r.x+o.r.width-2,o.r.y-2,4,4);
              if(ne.inside(x,y))
                   shiftNE=true;
              else shiftNE=false;
              se=new Rectangle(o.r.x+o.r.width-2,o.r.y+o.r.height-2,4,4);
              if(se.inside(x,y))
                   shiftSE=true;
              else shiftSE=false;          
              if(x>o.r.x-2&&x<o.r.x+2&&y>o.r.y&&y<o.r.y+o.r.height)
                   shiftW=true;
              else shiftW=false;
              if(x>o.r.x+o.r.width-2&&x<o.r.x+o.r.width+2
                   &&y>o.r.y&&y<o.r.y+o.r.height)
                   shiftE=true;
              else shiftE=false;
              if(y<o.r.y+2&&y>o.r.y-2&&x>o.r.x&&x<o.r.x+o.r.width)
                   shiftN=true;
              else shiftN=false;
              if(y>o.r.y+o.r.height-2&&y<o.r.y+o.r.height+2
                   &&x<o.r.x+o.r.width)
                   shiftS=true;
              else shiftS=false;
              changeCursor(x,y);
              return true;
         public boolean mouseDown(Event evt,int x,int y)
              Rectangle r=new Rectangle(o.r.x+2,o.r.y+2,o.r.width-4,o.r.height-4);
              if(r.inside(x,y))
                   drag=true;
                   startx=x;
                   starty=y;
                   xtemp=o.r.x;
                   ytemp=o.r.y;
              else drag=false;
              changeCursor(x,y);
              return true;
         public boolean mouseDrag(Event evt,int x,int y)
              intro=false;
              Rectangle bounds=new Rectangle(5,5,size().width-5,size().height-5);
              int endx, endy;          
              endx=x-startx;
              endy=y-starty;     
              //disable mouse actions past boundaries
              if(x<5)x=5;
              if(y<5)y=5;
              if(x>bounds.width)x=bounds.width;
              if(y>bounds.height)y=bounds.height;
              if(drag)
                   //disallow to move past border
                   int ox=endx+xtemp;
                   int oy=endy+ytemp;
                   if(ox<5)ox=5;
                   if(oy<5)oy=5;
                   if(ox>bounds.width-o.r.width)
                        ox=bounds.width-o.r.width;
                   if(oy>bounds.height-o.r.height)
                        oy=bounds.height-o.r.height;     
                   o.r.move(ox,oy);                    
                   west=o.r.x;
                   north=o.r.y;
                   east=o.r.x+o.r.width;
                   south=o.r.y+o.r.height;                              
              else
                   if(shiftNW){west=x;north=y;}
                   else if(shiftNE){east=x;north=y;}
                   else if(shiftSW){west=x;south=y;}
                   else if(shiftSE){east=x;south=y;}
                   else if(shiftW)west=x;
                   else if(shiftE)east=x;
                   else if(shiftN)north=y;
                   else if(shiftS)south=y;                                                       
                   //disallow resizing below 40*40
                   int MIN=40;
                   if(east-west<MIN)
                        //shiftNW=shiftNE=shiftSW=shiftSE=shiftW=shiftE=false;
                        if(shiftW||shiftNW||shiftSW)
                             west=east-MIN;
                        if(shiftE||shiftNE||shiftSE)
                             east=west+MIN;
                   if(south-north<MIN)
                        //shiftNW=shiftNE=shiftSW=shiftSE=shiftN=shiftS=false;
                        if(shiftN||shiftNW||shiftNE)
                             north=south-MIN;
                        if(shiftS||shiftSE||shiftSW)
                             south=north+MIN;
              //report altering of obstacle to ball objects and obstacle
              for(int i=0;i<MAX;i++)
                   ball[i].alterRect(o.r.x,o.r.y,o.r.width,o.r.height);
              o.r.move(west,north);
              o.r.resize(east-west, south-north);
              changeCursor(x,y);
              return true;
         private void handleCollision()
              //we iterate through all the balls, checking for collision
              for(int i=0;i<MAX;i++)
                   for(int j=0;j<MAX;j++)
                             if(i!=j)
                                  if(collide(ball[i], ball[j]))
                                       ball[i].hit(ball[j]);
                                       ball[j].hit(ball[i]);
         public void update(Graphics g)
              paint(g);
         public void paint(Graphics g)
              gBuffer.setColor(Color.lightGray);
              gBuffer.fillRect(0,0,size().width,size().height);
              gBuffer.draw3DRect(5,5,size().width-10,size().height-10,false);               
              //paint the obstacle rectangle
              o.paint(gBuffer);
              //paint our balls
              for(int i=0;i<MAX;i++)
                        ball[i].paint(gBuffer);     
              if(intro)
                   gBuffer.setColor(Color.red);
                   gBuffer.setFont(new Font("Helvetica", Font.PLAIN, 12));               
                   gBuffer.drawString("You can move and resize the rectangle!",20,30);
                   gBuffer.setFont(new Font("Helvetica", Font.PLAIN, 10));
              g.drawImage (Buffer,0,0, this);                    

    Hello, please use code tags next time you post code. You can do so by adding [code] [/code] round blocks of code. So
    [code]
    class Code {
    private static final String codeHere = "code here";
    [/code]
    will be rendered as
    class Code {
      private static final String codeHere = "code here";
    We will not do your homework for you, we will however help when you are stuck and point you in the right direction. So what have you tried? What happened?
    Don't know how to begin? What makes the ball move?

  • I dont see text options in the RFEBKA00 program

    Hello friends,
    When I run the RFEBKA00 program, I don´t see the text of the every radio button options.
    How I can solve this problem,
    Can you help me please,
    Regards
    David

    did you solve this problem? can you tell me how?

  • I am unable to open my Photoshop program after installing the entire Creative Suite: Premium Production 6. All other programs work, but with Photoshop it says that the program is "locked or in use by another user". I need this fixed immediately.

    I am unable to open my Photoshop program after installing the entire Creative Suite: Premium Production 6. All other programs work, but with Photoshop it says that it "Could not open a scratch file because the file is locked, you do not have necessary access permissions, or another program is using the file. Use the 'Properties' command in the Windows Explorer to unlock the file." Then I select "OK" and the next message comes up "Could not initialize Photoshop because the file is locked, you do not have the necessary permissions, or another program is using the file. Use the 'Properties' command in the Windows Explorer to unlock this file. I installed all of the programs on the same day from a CD. I need this fixed immediately.
    I am not interested in switching to Creative Cloud, so don't even suggest it. I spoke to Mashmi (or something to that effect) on the "Support" Chat and there was absolutely no support. Useless actually.
    Thanks in advance.

    Could not open a scratch file because the file is locked or you do not have the necessary access privileges. (…) | Mylen…
    Mylenium

Maybe you are looking for