Sense Exception Description (SNSEXCPD)


Op Code (Hex) Operand 1 Operand 2 Operand 3
03E3 Attribute receiver Invocation template Exception template

Operand 1: Space pointer.

Operand 2: Space pointer.

Operand 3: Space pointer.

Note: A change has been made in the way in which exceptions are handled for bound programs. This instruction is intended for use with non-bound programs, but can be used against bound programs. The data that is returned when a bound program is accessed will always say that there is an external handler for the sensed exception, that there is no exception data being returned and a starting exception description number of 0.

Description

This instruction searches the invocation specified by operand 2 for an exception description that matches the exception identifier and compare value specified by operand 3 and returns the user data and exception handling action specified in the exception description. The exception descriptions of the invocation are searched in ascending Object Definition Table (ODT) number sequence.

The template identified by operand 1 must be 16-byte aligned.

The format of the attribute receiver is as follows:

Offset
Dec Hex
Field Name
Data Type and Length
0 0
Template size
Char(8)
0 0
Number of bytes provided for materialization
Bin(4)
4 4
Number of bytes available for materialization
Bin(4)
8 8
Control flags
Char(2)
8 8
Exception handling action
Bits 0-2



000 = Do not handle- Ignore occurrence of exception and continue processing
010 = Do not handle- Continue search for an exception description by resignaling the exception to the immediately preceding invocation
100 = Defer handling- Save exception data for later exception handling
101 = Pass control to the specified exception handler



8 8
No data
Bit 3



0 = Exception data is returned
1 = Exception data is not returned



8 8
Reserved (binary 0)
Bit 4
8 8
User data indicator
Bit 5



0 = User data not present
1 = User data present



8 8
Reserved (binary 0)
Bits 6-7
8 8
Exception handler type
Bits 8-9



00 = External entry point
01 = Internal entry point
10 = Branch point



8 8
Reserved (binary 0)
Bits 10-15
10 A
Relative exception description number
Bin(2)
12 C
Reserved (binary 0)
Char(4)
16 10
Pointer to user data (binary 0 if value of user data indicator is 0)
Space pointer
32 20
--- End ---

The first 4 bytes of the materialization identify the total number of bytes provided for use by the instruction. This value is supplied as input to the instruction and is not modified by the instruction. A value of less than 8 causes the materialization length invalid  (hex 3803) exception to be signaled.

The second 4 bytes of the materialization identify the total number of bytes available to be materialized. The instruction materializes as many bytes as can be contained in the area specified as the receiver. If the byte area identified by the receiver is greater than that required to contain the information requested, then the excess bytes are unchanged. No exception is signaled in the event the receiver contains insufficient area for the materialization, other than the materialization length invalid  (hex 3803) exception described previously.

The relative exception description number field identifies the relative number of the exception description that matched the search criteria. The order of definition of the exception descriptions in the ODT determines the value of the index. A value of 1 indicates that the first exception description defined in the ODT matched the search criteria.

The format of the invocation template is as follows:

Offset
Dec Hex
Field Name
Data Type and Length
0 0
Invocation address/offset
Space pointer or Invocation pointer
16 10
Search flags
Char(2)
16 10
Use offset option
Bit 0



0 = Use invocation address as a pointer value
1 = Use invocation address as an offset value



16 10
Reserved (binary 0)
Bits 1-15
18 12
First exception description to search
Bin(2)
20 14
--- End ---

The template identified by operand 2 must be 16-byte aligned. The invocation address/offset field is a space/invocation pointer that identifies the invocation to be searched. The invocation is searched for a matching exception description. If the invocation address locates either an invalid invocation or the invocation stack base entry, the invalid invocation address (hex 1603) exception is signaled.

The invocation address/offset field can also be an offset value from the current requesting invocation to the invocation to be searched. This is done by setting the use offset option bit field that follows the invocation address field to 1. If the invocation offset value locates the invocation stack base entry, the invocation offset outside range of current stack  (hex 2C1A) exception is signaled. If the invocation offset value is positive or zero, a template value invalid  (hex 3801) exception is signaled.

The first exception description to search field specifies the relative number of the exception description to be used to start the search. The number must be a nonzero positive binary number determined by the order of definition of exception descriptions in the ODT. A value of 1 indicates that the first exception description in the invocation is to be used to begin the search. If the value is greater than the number of exception descriptions for the invocation, the operand 1 template is materialized with the number of bytes available for materialization set to 0.

The operand 3 exception template specifies the exception-related data to be used as a search argument. The format of the template is as follows:

Offset
Dec Hex
Field Name
Data Type and Length
0 0
Template size
Char(8)
0 0
Number of bytes provided for materialization
Bin(4)



(must be at least 44)


4 4
Number of bytes available for materialization
Bin(4) +
8 8
Exception identifier
Char(2)
10 A
Compare value length (maximum of 32)
Bin(2)
12 C
Compare value
Char(32)
44 2C
--- End ---

Note: Fields noted with a plus sign (+) are ignored by the instruction.

The exception identifier in the exception description can be specified in one of the following ways:

Hex 0000 =

Any exception ID will result in a match

Hex nn00 =

Any exception ID in class nn will result in a match

Hex nnmm =

Only exception ID nnmm will result in a match

If a match on exception ID is detected, the corresponding compare values are matched. If the compare value length in the exception description is less than the compare value in the search template, the length of the compare value in the exception description is used for the match. If the compare value length in the exception description is greater than the compare value in the search template, an automatic mismatch results.

If a match on exception ID and compare value is detected, the exception handling action of the exception description determines which of the following actions is taken:

IGNORE

The operand 1 template is materialized.

DISABLE

The exception description is bypassed and the search for an exception description continues with the next exception description defined for the invocation.

RESIGNAL

The operand 1 template is materialized.

DEFER

The operand 1 template is materialized.

HANDLE

The operand 1 template is materialized.

If no exception description of the invocation matches the exception ID and compare value of operand 3, the number of bytes available for materialization on the operand 1 template is set to 0.

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

10 Damage Encountered

16 Exception Management

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2C Program Execution

2E Resource Control Limit

32 Scalar Specification

36 Space Management

38 Template Specification

44 Protection Violation