100501 non oracle,Error-100501 non-oracle exception

Well it's not true that the only way to cause 100501 is as they describe in their experience.

It's valuable to know about their experience but that's not the whole deal with this error.

Also I don't agree about when others then. but I'll let that slide....

I had my own battle with 100501 yesterday and it was caused by using :system.cursor_item in a when

new item instance trigger. Apparently there are cases where :system.cursor_item is off in the ozone and

following it e.g.

prev_field := get_item_property(:system.cursor_item,PREVIOUSITEM);

causes a runtime meltdown like I saw happen. Changing it to :system.trigger_item fixed it.

Note what the help system 11.1.1.4 says about this. Yet another error system.

How many are there? I would dearly love to see the code that could display every kind of error

that forms could detect. The vendor could make this easier if they corrected the "non-oracle" to

'java exception' which would point people more towards the solution. (Note since Java is from

oracle you can't say "non-oracle" regarding java. If java is tripping over your code you have yourself to blame now!)

Handling Java Exceptions from PL/SQL Code

The Java programming language uses the concept of exceptions to indicate that something has gone wrong while the program is executing. These types of exceptions are best thought of as something going wrong in the Java code itself.

The ORA_JAVA package provides you with the capability to work with Java exceptions as they are thrown in the Java code that is called from your Forms application. When a Java exception is thrown inside the Java code as it is being executed, Oracle Forms Server will detect this and will raise a PL/SQL exception called ORA_JAVA.EXCEPTION_THROWN. This PL/SQL exception can be detected using the standard PL/SQL exception handling mechanism. The Built-in ORA_JAVA.LAST_EXCEPTION can then be used to obtain a reference to the actual Java exception object that was thrown in the Java code. You should note that the Built-in returns a reference to the actual Java exception object that was thrown. You can use this exception object just as you would any other Java object you had created.

Note that if you do not add explicit exception handlers to your code, then these Oracle errors might be thrown instead of a named exception: ORA-105100—this is synonymous with ORA_JAVA.JAVA_ERROR ORA-105101—this is synonymous with ORA_JAVA.EXCEPTION_THROWN

Example

The following code sample demonstrates how to work with Java exceptions. The ORA_JAVA.EXCEPTION_THROWN PL/SQL exception is handled in the PL/SQL block. When this exception is detected, the actual Java exception is assigned to a local object. Using this object and the imported java.lang.Exception package, the getMessage Java method is invoked on the exception object to display the actual error that was detected.

DECLARE

exc ora_java.jobject;

. . .

BEGIN

[ do some operations ]

EXCEPTION

WHEN ORA_JAVA.EXCEPTION_THROWN THEN

exc := ORA_JAVA.LAST_EXCEPTION;

MESSAGE(Exception_.getMessage(exc));

ORA_JAVA.CLEAR_EXCEPTION;

END;

For the following example, the classes java.lang.Exception and java.lang.StringBuffer have been imported. Note that Exception has been imported as Exception_ because it is a PL/SQL reserved word.

DECLARE

buffer ORA_JAVA.JOBJECT;

newBuffer ORA_JAVA.JOBJECT;

javaException ORA_JAVA.JOBJECT;

BEGIN

buffer := StringBuffer.new('ABCDE');

-- This should raise an Index out of bounds error

-- as -1 is not a valid start point for the

-- Delete method

newBuffer := StringBuffer.Delete_(buffer,-1,2);

message(StringBuffer.toString(newBuffer));

EXCEPTION

WHEN ORA_JAVA.EXCEPTION_THROWN THEN

javaException := ORA_JAVA.LAST_EXCEPTION;

-- Print out the Exception by using the toString()

-- Method of the exception Object

message(Exception_.toString(javaException));

-- and clean up

ORA_JAVA.CLEAR_EXCEPTION;

END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值