Best Practice for catching OracleException
I have code that determines if an insert fails because of a unique constraint. This is how I'm currently doing it. Is there a prefered method of doing the same (i.e. the type of Oracle exception) without having to compare the message string?
Thanks,
Donavon
cmd = new OracleCommand("insert ...",conn);
try {
cmd.ExecuteNonQuery();
catch (OracleException e) {
if (e.Message.Substring(0,9) == "ORA-00001") {
//do something here if unique constraint
I think I've answered my own question again. I changed my code to do this.
As for what the errors mean, look in the Oracle 9i documentation on the website (I don't have the URL off hand).
if (e.Number==1) {
//handle errror here
Similar Messages
-
Best Practice for Extracting a Single Value from Oracle Table
I'm using Oracle Database 11g Release 11.2.0.3.0.
I'd like to know the best practice for doing something like this in a PL/SQL block:
DECLARE
v_student_id student.student_id%TYPE;
BEGIN
SELECT student_id
INTO v_student_id
FROM student
WHERE last_name = 'Smith'
AND ROWNUM = 1;
END;
Of course, the problem here is that when there is no hit, the NO_DATA_FOUND exception is raised, which halts execution. So what if I want to continue in spite of the exception?
Yes, I could create a nested block with EXCEPTION section, etc., but that seems clunky for what seems to be a very simple task.
I've also seen this handled like this:
DECLARE
v_student_id student.student_id%TYPE;
CURSOR c_student_id IS
SELECT student_id
FROM student
WHERE last_name = 'Smith'
AND ROWNUM = 1;
BEGIN
OPEN c_student_id;
FETCH c_student_id INTO v_student_id;
IF c_student_id%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('not found');
ELSE
(do stuff)
END IF;
CLOSE c_student_id;
END;
But this still seems like killing an ant with a sledge hammer.
What's the best way?
Thanks for any help you can give.
WayneDo not design in order to avoid exceptions. Do not code in order to avoid exceptions.
Exceptions are good. Damn good. As it allows you to catch an unexpected process branch, where execution did not go as planned and coded.
Trying to avoid exceptions is just plain bloody stupid.
As for you specific problem. When the SQL fails to find a row and a value to return, what then? This is unexpected - if you did not want a value, you would not have coded the SQL to find a value. So the SQL not finding a value is an exception to what you intend with your code. And you need to decide what to do with that exception.
How to implement it. The #1 rule in software engineering - modularisation.
E.g.
create or replace function FindSomething( name varchar2 ) return foo.col1%type is
id foo.col1%type;
begin
select col1 into id from foo where col2 = upper(name);
return( id );
exception when NOT_FOUND then
return( null );
end;
And that is your problem. Modularisation. You are not considering it.
And not the only problem mind you. Seems like your keyboard has a stuck capslock key. Writing code in all uppercase is just as bloody silly as trying to avoid exceptions. -
Best practices for dealing with Exceptions on storage members
We recently encountered an issue where one of our DistributedCaches was terminating itself and restarting due to an RuntimeException being thrown from our code (see below). As usual, the issue was in our own code and we have updated it to not throw a RuntimeException under any circumstances.
I would like to know if there are any best practices for Exception handling, other than catching Exceptions and logging them. Should we always trap Exceptions and ensure that they do not bubble back up to code that is running from the Coherence jar? Is there a way to configure Coherence so that our DistributedCaches do not terminate even when custom Filters and such throw RuntimeExceptions?
thanks, Aidan
Exception below:
2010-02-09 12:40:39.222/88477.977 Oracle Coherence GE 3.4.2/411 <Error> (thread=DistributedCache:StyleCache, member=48): An exception (java.lang.RuntimeException) occurred reading Message AggregateFilterRequest Type=31 for Service=DistributedCache{Name=StyleCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=1021, BackupCount=1, AssignedPartitions=201, BackupPartitions=204}
2010-02-09 12:40:39.222/88477.977 Oracle Coherence GE 3.4.2/411 <Error> (thread=DistributedCache:StyleCache, member=48): Terminating DistributedCache due to unhandled exception: java.lang.RuntimeExceptionBob - Here is the full stacktrace:
2010-02-09 13:04:22.653/90182.274 Oracle Coherence GE 3.4.2/411 <Error> (thread=DistributedCache:StyleCache, member=47): An exception (java.lang.RuntimeException) occurred reading Message AggregateFilterRequest Type=31 for Service=DistributedCache{Name=StyleCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=1021, BackupCount=1, AssignedPartitions=205, BackupPartitions=204}
2010-02-09 13:04:22.653/90182.274 Oracle Coherence GE 3.4.2/411 <Error> (thread=DistributedCache:StyleCache, member=47): Terminating DistributedCache due to unhandled exception: java.lang.RuntimeException
2010-02-09 13:04:22.653/90182.274 Oracle Coherence GE 3.4.2/411 <Error> (thread=DistributedCache:StyleCache, member=47):
java.lang.RuntimeException: java.lang.ClassNotFoundException: com.edmunds.vehicle.Style$PublicationState
at com.edmunds.common.coherence.EdmundsEqualsFilter.readExternal(EdmundsEqualsFilter.java:84)
at com.tangosol.io.pof.PortableObjectSerializer.initialize(PortableObjectSerializer.java:153)
at com.tangosol.io.pof.PortableObjectSerializer.deserialize(PortableObjectSerializer.java:128)
at com.tangosol.io.pof.PofBufferReader.readAsObject(PofBufferReader.java:3284)
at com.tangosol.io.pof.PofBufferReader.readAsObjectArray(PofBufferReader.java:3328)
at com.tangosol.io.pof.PofBufferReader.readObjectArray(PofBufferReader.java:2168)
at com.tangosol.util.filter.ArrayFilter.readExternal(ArrayFilter.java:243)
at com.tangosol.io.pof.PortableObjectSerializer.initialize(PortableObjectSerializer.java:153)
at com.tangosol.io.pof.PortableObjectSerializer.deserialize(PortableObjectSerializer.java:128)
at com.tangosol.io.pof.PofBufferReader.readAsObject(PofBufferReader.java:3284)
at com.tangosol.io.pof.PofBufferReader.readAsObjectArray(PofBufferReader.java:3328)
at com.tangosol.io.pof.PofBufferReader.readObjectArray(PofBufferReader.java:2168)
at com.tangosol.util.filter.ArrayFilter.readExternal(ArrayFilter.java:243)
at com.tangosol.io.pof.PortableObjectSerializer.initialize(PortableObjectSerializer.java:153)
at com.tangosol.io.pof.PortableObjectSerializer.deserialize(PortableObjectSerializer.java:128)
at com.tangosol.io.pof.PofBufferReader.readAsObject(PofBufferReader.java:3284)
at com.tangosol.io.pof.PofBufferReader.readObject(PofBufferReader.java:2599)
at com.tangosol.io.pof.ConfigurablePofContext.deserialize(ConfigurablePofContext.java:348)
at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.readObject(Service.CDB:4)
at com.tangosol.coherence.component.net.Message.readObject(Message.CDB:1)
at com.tangosol.coherence.component.net.message.requestMessage.distributedCacheRequest.partialRequest.FilterRequest.read(FilterRequest.CDB:8)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$AggregateFilterRequest.read(DistributedCache.CDB:4)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:117)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onNotify(DistributedCache.CDB:3)
at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:37)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: com.edmunds.vehicle.Style$PublicationState
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.edmunds.common.coherence.EdmundsEqualsFilter.readExternal(EdmundsEqualsFilter.java:82)
... 25 more
2010-02-09 13:04:23.122/90182.743 Oracle Coherence GE 3.4.2/411 <Info> (thread=Main Thread, member=47): Restarting Service: StyleCacheOur code was doing something simple like
catch(Exception e){
throw new RuntimeException(e);
}Would using the ensureRuntimeException call do anything for us here?
Edited by: aidanol on Feb 12, 2010 11:41 AM -
What is the best practice for logging runtime error or uncheked exceptions
hello
my main problem is logging the nullPointerException to a file
suppose I have this method
public void myMethod()
//..... some declaration here
User user = obj.findUser("userx"); //this may return null
System.out.println("user name is "+user.getName()); // I may have a null pointer exception here
}so what is the best practice to catch the exception ??
can I log the exception without catching it ???
thank youA terrible way of logging exceptions.Not that im not agreeing with you, but why? (I havent
actually used this)Because it's always on, for one thing. It's not really configurable either, unless you go to some trouble to make it so. You'd have to provide an InputStream. How? Either at compile-time, which is undesirable, or by providing configuration, which a logging framework has already done, better. Then there's the fact that you can't log anything other than the stacktrace - not particularly helpful a lot of the time. In short, it's a buggy and incomplete solution to something that's already been solved much much better by, for example, Log4J -
Best Practice for mail connectors
I am setting up connectors for exchange and groupwise and am testing auto-provisioning. I am running into an issue with groupwise where the GroupWise connector attempts to provision before the E-Directory account is established. Is there a best practice for how to avoid this from happening? should I add a hidden OIM field that populates when E-dir is provisioned correctly and put a rule in place to catch it and then provision groupwise or is there an easier way?
rkimbal45You can put a task on the create user of the email that validates the directory exists. And you can set the retry counter, so that if your email connectors runs first, it will not continue. Then when retry happens, it will see it exists, and then your next tasks can trigger. Just create it as an unconditional task and set it as a preceding to your Create User task. This will keep the create user task in a pending state until your check completes.
-Kevin -
Best Practices for Using Service Controller for Entity Framework Database
I'm running into an issue in my first time creating a Web Service with a .NET backend with Azure. I designed a database in Entity Framework and had it create the models, but I couldn't create a controller for the table unless I made the model inherit from
EntityData. Here's the catch, the Database Model has int Id, but EntityData has string Id, so, of course, I'm getting errors. What is best practice for what I'm trying to do?
Michael DiLeohi Michael,
Thanks for you posting!
Sorry for I am not totally understanding your issue. Maybe two points need your confirm:
1. I confuse with the "Service controller"? IS your meaning MVC controller? Or ServiceController(http://www.codeproject.com/Articles/31688/Using-the-ServiceController-in-C-to-stop-and-start
2.whether The type of ID in the model is match to the database ? In other words, Is the type of IDin .edmx matched to the database?
By the way, it seems that this issue is more related to EF. You could post this issue on EF discussion for better support.
Thanks & Regards,
Will
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
What are the best practices for exception handling in n-tier applications?
What are the best practices for exception handling in n-tier applications?
The application is a fat client based on MVVM pattern with .NET framework.What are the best practices for exception handling in n-tier applications?
The application is a fat client based on MVVM pattern with
.NET framework.
That would be to catch all exceptions at a single point in the n-tier solution, log it and create user friendly messages displayed to the user. -
Best practices for connecting to DB
Hi,
I am having 3 different java classes which will contact the DB for getting the data from the table. I wrote a separate java class for DB connection like this :
public class DBConnection {
private Connection con;
public Connection getConnection() {
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
con = DriverManager.getConnection("jdbc:derby://localhost:1527/StrutsDB", "username", "password");
} catch (SQLException ex) {
Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
return con;
How to use this single connection object in all of the 3 classes? What are all the ways of doing so?
Is there any best practices for connecting to DB?
Thanks in advance,The problem with "best practice" is it really depends on your situation. If you are creating a single user, desktop application then what you are doing will work but would be more efficient if the connection was declared as static and you used the singleton pattern.
public class DBConnection {
private static final Connection con;
private DBConnection() {
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
con = DriverManager.getConnection("jdbc:derby://localhost:1527/StrutsDB", "username", "password");
} catch (SQLException ex) {
Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
public static Connection getConnection() {
return con.
}The private constructor guarantees only one instance of the class will be created (since you can't use 'new' to create one) and initialized the database connection. Then any other object that require a connection simply call DBConnection.getConnection() and they will get the same database connection each time.
Note that this is a little simplistic and is not thread safe. If your classes will be executing on different threads you will need a more sophisticated approach. You will also need to make sure you commit or rollback any transactions when done or the next time you get the connection you may be in the middle of an existing transaction. -
What are the best practices for the RCU's schemas
Hi,
I was wondering if there is some best practices about the RCU's schemas created with BIEE.
I already have discoverer (and application server), so I have a metadata repository for the Application Server. I will upgrade Discoverer 10g to 11, so I will create new schema with RCU in my metada repository (MR) of the Application Server. I'm wondering if I can put the BIEE's RCU schemas in the same database.
Basically,
1. is there a standard for the PREFIX ?
2. If I have multiple components of Fusion in the same Database, I will have multiples PREFIX_MDS schema ? Can they have the same PREFIX ? Or They all need to have a different prefix ?
For exemple: DISCO_MDS and BIEE_MDS or I can have DEV_MDS and this schema is valid for both Discoverer and BIEE.
Thank you !What are the best practices for exception handling in n-tier applications?
The application is a fat client based on MVVM pattern with
.NET framework.
That would be to catch all exceptions at a single point in the n-tier solution, log it and create user friendly messages displayed to the user. -
Best practices for setting up users on a small office network?
Hello,
I am setting up a small office and am wondering what the best practices/steps are to setup/manage the admin, user logins and sharing privileges for the below setup:
Users: 5 users on new iMacs (x3) and upgraded G4s (x2)
Video Editing Suite: Want to connect a new iMac and a Mac Pro, on an open login (multiple users)
All machines are to be able to connect to the network, peripherals and external hard drive. Also, I would like to setup drop boxes as well to easily share files between the computers (I was thinking of using the external harddrive for this).
Thank you,Hi,
Thanks for your posting.
When you install AD DS in the hub or staging site, disconnect the installed domain controller, and then ship the computer to the remote site, you are disconnecting a viable domain controller from the replication topology.
For more and detail information, please refer to:
Best Practices for Adding Domain Controllers in Remote Sites
http://technet.microsoft.com/en-us/library/cc794962(v=ws.10).aspx
Regards.
Vivian Wang -
Best-practice for Catalog Views ? :|
Hello community,
A best practice question:
The situtation: I have several product categories (110), several items in those categories (4000) and 300 end-users. I would like to know which is the best practice for segment the catalog. I mean, some users should only see categories 10,20 & 30. Other users only category 80, etc. The problem is how can I implement this ?
My first idea is:
1. Create 110 Procurement Catalogs (1 for every prod.category). Each catalog should contain only its product category.
2. Assign in my Org Model, in a user-level all the "catalogs" that the user should access.
Do you have any idea in order to improve this ?
Saludos desde Mexico,
DiegoHi,
Your way of doing will work, but you'll get maintenance issues (to many catalogs, and catalog link to maintain for each user).
The other way is to built your views in CCM, and assign these views to the users, either on the roles (PFCG) or on the user (SU01). The problem is that with CCM 1.0 this is limitated, cause you'll have to assign one by one the items to each view (no dynamic or mass processes), it has been enhanced in CCM 2.0.
My advice:
-Challenge your customer about views, and try to limit the number of views, with for example strategic and non strategic
-With CCM 1.0 stick to the procurement catalogs, or implement BADIs to assign items to the views (I experienced it, it works, but is quite difficult), but with a limitated number of views
Good luck.
Vadim -
Best Practice for Securing Web Services in the BPEL Workflow
What is the best practice for securing web services which are part of a larger service (a business process) and are defined through BPEL?
They are all deployed on the same oracle application server.
Defining agent for each?
Gateway for all?
BPEL security extension?
The top level service that is defined as business process is secure itself through OWSM and username and passwords, but what is the best practice for security establishment for each low level services?
Regards
FarbodIt doesnt matter whether the service is invoked as part of your larger process or not, if it is performing any business critical operation then it should be secured.
The idea of SOA / designing services is to have the services available so that it can be orchestrated as part of any other business process.
Today you may have secured your parent services and tomorrow you could come up with a new service which may use one of the existing lower level services.
If all the services are in one Application server you can make the configuration/development environment lot easier by securing them using the Gateway.
Typical probelm with any gateway architecture is that the service is available without any security enforcement when accessed directly.
You can enforce rules at your network layer to allow access to the App server only from Gateway.
When you have the liberty to use OWSM or any other WS-Security products, i would stay away from any extensions. Two things to consider
The next BPEL developer in your project may not be aware of Security extensions
Centralizing Security enforcement will make your development and security operations as loosely coupled and addresses scalability.
Thanks
Ram -
Best practice for multi-language content in common areas
I've got a site with some text in header/footer/nav that needs to be translated between an English and Spanish site, which use the same design. My intention was to set up all the text as content to facilitate. However, if I use a standard dialog with the component's path set to a child of the current page node, I would need to re-enter the text on every page. If I use a design dialog, or a standard dialog with the component's path set absolutely, the Engilsh and Spanish sites will share the same text. If I use a standard dialog with the component's path set relatively (eg path="../../jcr:content/myPath"), the pages using the component would all need to be at the same level of the hierarchy.
It appears that the Geometrixx demo doesn't address this situation, and leaves copy in English. Is there a best practice for this scenario?I'm finding that something to the effect of <cq:include path="<%= strCommonContentPath + "codeEntry" %>" resourceType ...
works fine for most components, but not for parsys, or a component containing a parsys. When I attempt that, I get a JS error that says "design.path is null or not an object". Is there a way around this? -
Best Practice for utility in Sol Man 4.0
We have software component ST-ICO of release 150_700 with Patch level 5
We want a Template Selection for Utility industry. I checked in
the service market place and found that 'Baseline Package United
Kingdom V1.50, Template: BP_BLKU150' is available in the above software
component.
But we are not getting any templates other than 'BP_UTUS147 - Best Practices for Water Utility' in the 'SOLAR_PROJECT_ADMIN'
transaction.
Kindly suggest any patch needs to be applied or some configuration need to be done.
Regards
ManiHi Mani,
Colud u plz give me the link of "where u find the template BP_BLKU150"?
It will be helpful for me.
Thanks
Senthil -
Best Practices for SRM Installation !!
Hi
can someone share the best Practices for SRM Installation ?
What is the typical timeframe to install SRM on development server and as well as on the Production server ?
Appericiate the responses
Thanks,
ArvindHi
I don't know whether this will help you.
See these links as well.
<b>http://help.sap.com/bp_epv170/EP_US/HTML/Portals_intro.htm
http://help.sap.com/bp_scmv150/index.htm
http://help.sap.com/bp_biv170/index.htm
http://help.sap.com/bp_crmv250/CRM_DE/index.htm</b>
Hope this will help.
Please reward suitable points.
Regards
- Atul
Maybe you are looking for
-
and a plasma tv... I am trying to watch some ITunes U movies on my plasma set while working out. So i buy a universal dock, the composite AV cable for the iPhone, hook it all up and try to watch an episode. What happens is that the video on the iPhon
-
Hi, I have a problem with xml, I need transform a page xml to html with xslt. I need help. There are examples in iPlanet ? Help me please !!!! Jordi Pinyol Essi Projects Ingeniero de Desarrollo [email protected] t +34 977 221 182 http://www.essiproje
-
HT1338 how much does it cost to get the latest version of safari
how much does it cost to get latest version of safari
-
# Question Can you please help to understand how the firefox decides on the Expires date for a cached javascript file ( my server did not set any Expire header, but firebox set it down). I tried to understand but different javascript file gets differ
-
Hi gurus , I am trying to define new User exit screen for LM51. I have developed new screen assigned as, logical == 9151 variant=9 actual screen = 2151 assighned in lrfmd with variant = 9 Even In Lm51 its not calling the subscreen 9151.i am not getti