Replacing @@ERROR Based Error Handling With Structured Exception Handling

Could please any one explain 
Thanks

Hi Rmohan,
In SQL Server 2008 R2, we can use RAISERROR to generate an error message and initiates error processing for the session. RAISERROR can either reference a user-defined message stored in the sys.messages catalog view or build a message dynamically.
Do you want to build a custom error message? If so, you can use the following script:
Begin Try
RAISERROR ('Generate custom error message.', -- Message text.
16, -- Severity.
1 -- State.
End Try
Begin Catch
-- We can also print the error message if necessary
Print 'custom error message'
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
-- Use RAISERROR inside the CATCH block to return error
-- information about the original error that caused
-- execution to jump to the CATCH block.
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
End Catch
The result is as follows:
Reference:
http://msdn.microsoft.com/en-IN/library/ms178592(v=sql.105).aspx
Regards,
Mike Yin
TechNet Community Support

Similar Messages

  • Internal compilation error, terminated with fatal exception

    Hi All:
    I have downloaded and installed JDeveloper 10g and
    I am trying to develop my frist JSP web application using JDeveloper 10g.When I try compiling the Hello.jsp in workspace 1, I get the following error "Internal compilation error, terminated with fatal exception". Does anyone know how to fix it?
    Thanks!

    The Service Update 1 extension was installed previously. I have:
    Studio Edition Version 10.1.3.0.4 (SU1)
    Build JDEVADF_10.1.3_NT_060125.0900.3673
    I do have the following error, even though the IDE starts-up:
    C:\>C:\jdevstudio1013\jdev\bin\jdev.exe
    java.lang.NoClassDefFoundError: org/apache/velocity/app/VelocityEngine
    at org.dubh.jdev.templatemaker.velocity.VelocityTemplateCaster.<init>(Ve
    locityTemplateCaster.java:89)
    at org.dubh.jdev.templatemaker.TemplateMaker.initialize(TemplateMaker.ja
    va:465)
    at oracle.ideimpl.extension.AddinManagerImpl.initializeAddin(AddinManage
    rImpl.java:416)
    at oracle.ideimpl.extension.AddinManagerImpl.initializeAddins(AddinManag
    erImpl.java:227)
    at oracle.ideimpl.extension.AddinManagerImpl.initProductAndUserAddins(Ad
    dinManagerImpl.java:156)
    at oracle.ide.IdeCore.initProductAndUserAddins(IdeCore.java:1431)
    at oracle.ide.IdeCore.startupImpl(IdeCore.java:1196)
    at oracle.ide.Ide.startup(Ide.java:672)
    at oracle.ideimpl.Main.start(Main.java:49)
    at oracle.ideimpl.Main.main(Main.java:25)
    Thanks,
    --Todd                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • MDIS blocking XML files with Structural exceptions

    Hi,
    I am importing Article master records into a repository with MDIS. The files are blocking with structural exceptions. I can import the same files fine with the Import Manager - only some extra value mapping has to be done. I have set to MDIS to perform automatic addition of unmapped values, the port is set using the correct map, it is set to inbound and it is using the correct schema for the article records.
    Any files that do not import with the MDIS can be imported with the Import Manager. Any ideas?
    Thanks,
    Keith
    Pts generously rewarded for helpful answers.

    Hi Keith,
    I can see only one cause of the problem taht you are facing.
    Probably for the "value mapping" you can make it automatic by setting the MDIS.
    You will have to set it as:
    1. Automap Unmapped value-- YES
    2. Always use Unmapped Value handling- ADD ( this is for adding values which cant be mapped as there as no such values present in MDM).
    Kindly let me know if the problem still prevails...
    Thanks,
    Nitin jain.

  • Jdev 12.1.2.0 Internal compilation error, terminated with fatal exception

    Any hints as how can  I fix my declarative components Jdev 12.1.2 stay alive....
    INFO: JpsUtil: isAuditDisabled set to true
    Dec 16, 2013 12:24:11 PM javax.ide.extension.ElementVisitor log
    SEVERE: jar:/file:C:/Oracle/Middleware/Jdeveloper12/jdeveloper/jdev/extensions/oracle.j2ee.webapp.ve.jar!/META-INF/extension.xml:355: Duplicate action id: ToolbarIdeCommands.PREVIEW_IN_BROWSER_CMD_ID
    Dec 16, 2013 12:24:29 PM oracle.security.jps.internal.common.util.StrictValidationEventHandler handleEvent
    WARNING: Invalid xml content was found. SchemaLocation: schemaLocation value = 'http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd' must have even number of URI's. Location: line 0 column 0.
    Dec 16, 2013 12:24:29 PM oracle.security.jps.internal.common.util.StrictValidationEventHandler handleEvent
    WARNING: Invalid xml content was found. SchemaLocation: schemaLocation value = 'http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd' must have even number of URI's. Location: line 0 column 0.
    ==> first NPE
    java.lang.NullPointerException
            at oracle.adfdtinternal.view.rich.build.template.DeclarativeComponentTranslator.translate(DeclarativeComponentTranslator.java:117)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildGraph(UnifiedBuildSystem.java:867)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFilesImpl(UnifiedBuildSystem.java:1188)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFiles(UnifiedBuildSystem.java:984)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProject(UnifiedBuildSystem.java:1352)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildAll(UnifiedBuildSystem.java:1450)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.run(UnifiedBuildSystem.java:1977)
    Fatal exception during compiling of project files
    ==> second NPE
    java.lang.NullPointerException
            at oracle.adfdtinternal.view.rich.build.template.DeclarativeComponentTranslator.translate(DeclarativeComponentTranslator.java:117)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildGraph(UnifiedBuildSystem.java:867)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFilesImpl(UnifiedBuildSystem.java:1188)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFiles(UnifiedBuildSystem.java:984)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProject(UnifiedBuildSystem.java:1352)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildAll(UnifiedBuildSystem.java:1450)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.run(UnifiedBuildSystem.java:1977)

    Any hints as how can  I fix my declarative components Jdev 12.1.2 stay alive....
    INFO: JpsUtil: isAuditDisabled set to true
    Dec 16, 2013 12:24:11 PM javax.ide.extension.ElementVisitor log
    SEVERE: jar:/file:C:/Oracle/Middleware/Jdeveloper12/jdeveloper/jdev/extensions/oracle.j2ee.webapp.ve.jar!/META-INF/extension.xml:355: Duplicate action id: ToolbarIdeCommands.PREVIEW_IN_BROWSER_CMD_ID
    Dec 16, 2013 12:24:29 PM oracle.security.jps.internal.common.util.StrictValidationEventHandler handleEvent
    WARNING: Invalid xml content was found. SchemaLocation: schemaLocation value = 'http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd' must have even number of URI's. Location: line 0 column 0.
    Dec 16, 2013 12:24:29 PM oracle.security.jps.internal.common.util.StrictValidationEventHandler handleEvent
    WARNING: Invalid xml content was found. SchemaLocation: schemaLocation value = 'http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd' must have even number of URI's. Location: line 0 column 0.
    ==> first NPE
    java.lang.NullPointerException
            at oracle.adfdtinternal.view.rich.build.template.DeclarativeComponentTranslator.translate(DeclarativeComponentTranslator.java:117)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildGraph(UnifiedBuildSystem.java:867)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFilesImpl(UnifiedBuildSystem.java:1188)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFiles(UnifiedBuildSystem.java:984)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProject(UnifiedBuildSystem.java:1352)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildAll(UnifiedBuildSystem.java:1450)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.run(UnifiedBuildSystem.java:1977)
    Fatal exception during compiling of project files
    ==> second NPE
    java.lang.NullPointerException
            at oracle.adfdtinternal.view.rich.build.template.DeclarativeComponentTranslator.translate(DeclarativeComponentTranslator.java:117)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildGraph(UnifiedBuildSystem.java:867)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFilesImpl(UnifiedBuildSystem.java:1188)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFiles(UnifiedBuildSystem.java:984)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProject(UnifiedBuildSystem.java:1352)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildAll(UnifiedBuildSystem.java:1450)
            at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.run(UnifiedBuildSystem.java:1977)

  • ColdFusion.Ajax.submitForm error handler problem with AppleWebKit-based browsers

    All-
    When using an AppleWebKit-based browser (i.e. Safari or
    Chrome), the
    message argument of the Coldfusion.Ajax.submitForm error
    handler always contains the string "OK", regardless of what error
    was cfthrown by my CFM form handler.
    Recall that the signature for the error handler is this:
    MyFormErrorHandler = function( code, message )
    In other browsers (i.e. IE or Firefox), the
    message argument of the error handler properly contains the
    message that was cfthrown by my form handler.
    Can anyone offer any guidance for this problem? Thanks in
    advance for your help.
    -Josh

    I was testing on IE8, Windows7 Starter.  I don't have IE6 available to test on.  Can test on IE7 a bit later on, but I have to fart-arse around with a VM to get it ready, so I'll do that after work.
    I tested multiple submits both via clicking between the tabs within one main "request" as well as multiple entire requests (like via refreshing the whole browser window).  I had no problems.
    I think you're being quite optimistic ot expect AJAX stuff to work reliably on IE6.  IE6 crashes.  That's what it's most famous for doing.  One needs to expect crashes if one pushes it (push it anywhere than out the window, that is).  And your client company's IT dept should be lined up against a wall and shot for still running it.  That's professionally negligent IMO.  But... you probably don't need to be told that.
    Adam

  • Class based error handling

    Hi evrybody,
    i'd like to implemt some own errorclasses, but i cand find anything about the namespace to use. Am i right that evry class based error handling must start with cx? So which namespace is for customoers?
    cu
      Rainer

    Hi Rainer,
    if you already have a regulation for class names, just replace CL by CX and apply them accordingly.
    For example, if your classes are named ZCL_... or YCL_..., your exception classes will be named ZCX... or YCX_..., respectively.
    See T100 message OO 145 for the details. Here is the German version:
    +Kurztext
    Klassenname &1 ist für den gewählten Klassentyp nicht zulässig
    Diagnose
    Namenskonvention für Klassen :
    Für eine persistente Klasse ist der Präfix 'CL_' bzw. Namensraum+Präfix 'CL_' ( z.B. 'ZCL' oder '/NAMESPACE/CL_' ) vorgeschrieben.
    Für eine Exceptionklasse ist der Präfix 'CX_' bzw. NamensraumPräfix 'CX_' ( z.B. 'ZCX' oder '/NAMESPACE/CX_' ) vorgeschrieben.
    Best regards,
    Thorsten Franz

  • LV7.1 Strange behavior with Automatic Error Handling occuring when it shouldn't [LV 7.1 Pro on WinXP for Tablet PC's]

    [LV 7.1 Pro on WinXP for Tablet PC's]
    I recently let a rather large LV app of mine run in the development environment while I was out for a couple of days. Upon returning I found that the app had hung for ~22 hours waiting for an answer to an Automatic Error Handling (AEH) dialog proclaiming an Error 7 in New File without any indication of the VI hierarchy that called New File.  I set about ensuring that AEH dialogs would not pop up and have not been able to discover how I could have possibly received one in the first place.
    Subsequent investigation revealed:
    Neither AEH option in Options>Block Diagrams were checked.
    Network problems had occurred around the time that the app had hung.  All file paths are network paths when running in the development environment, so the cause of the error was most likely valid, even if the AEH dialog appearance wasn't.
    My app has only one instance where the New File primitive is used by me. That subVI and all others above it in the hierarchy DO NOT have the AEH property enabled.  The error out cluster of New File in my subvi is wired.
    My app has three instances where New File is called from a vi.lib vi (Open/Create/Replace File.vi, Open Config Data.vi, and Prompt Web Browser Path.vi), none of which have the AEH property enabled.  Nor does any of their calling VI's.  All three instances also have their error out cluster wired.
    A utility to examine the AEH property of all VI's (with all top level and dynamic VI's loaded) in memory reported that only 1 of 308 vi's ( RGT Does File Exists.vi from the Report Generation Toolkit) had that property true.  That vi has no subVI's other than the File/Directory Info primitive and no calling VI's in common with any of the vi's that call New File, except a top level VI.
    As long as 'Enable automatic error handling dialogs' remains unselected in options>block diagram, I am unable to get an AEH dialog for either the New File or File/Directory Info primitives in a test VI with AEH property enabled and their error out clusters unwired no matter what invalid path I pass to the functions.  As soon as the options>block diagram>Enable AEH dialogs' is selected, both primitives fire AEH dialogs with no error out wired and don't when wired. i.e. works as advertised.
    In other words I can find no reason why I should have gotten the problem AEH dialog...
    I cannot afford for this app to hang because of a network problem, other portions of the app that were running concurrently correctly handled the error and, had the AEH dialog not appeared, the app would have made corrections or shutdown in an orderly fashion.
    Any ideas?

    Very good.
    Write Characters to File.vi>Open/Create/Replace File.vi>New File
    New File throws the error.  Open/Create/Replace strips the hierarchy from the source of the error.  Write Characters passes it to the General Error Handler.  I never looked above O/C/R file in the hierarchy except for enable automatic error handling property.  The tip-off should have been to realize that O/C/R file was stripping the hierarchy from the error and look above that. 
    The real irony is that Write Characters was being used to log error cluster data to an error log file...
    Save as... Copy without updating... the OEM 'Write Characters to File' is gone from this app.
    Thanx (a bunch)

  • Error Page with my own Error Message based on table

    <p class="MsoNormal"><span style="" lang="EN-AU">Hi All<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">I want to share my code (based on Apex_Lib code. Thanks Patrick) , maybe can help somebody else<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">Purpose: Replace the DB errors messages ( i.e ORA-00001- primary constraint ) with my own Message fetched from a table.<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">Components: 4 components<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">1. Java Script function ( MyErrorPage )<o:p></o:p><br>2. My Custom Error Page Template<o:p></o:p><br>3. Application item ( you can use any item )<o:p></o:p><br>4. Application Process ( getErrorMsg )<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU"> 5. My Error Table.<span style="">  </span>( Provided just as example )<o:p></o:p><br>6. Display example<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU"> Integration:<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU"> 1 Identify your Error Page Template and Go there. In my case for example is LOGIN<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">1.1 Under Definition / Header. <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU"> Copy the follow JS<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU"> &lt;script type="text/javascript"&gt;<br><br>function MyErrorPage(p_err_item,p_err_process)<br>{<br><br> var vElementList = null;<br> var vErrorStack  = null;<br> var vOraError    = null;<br> var vOraCode     = null;<br> var vAjaxRequest = null;<br> var vAjaxResult  = null;<br> var vMyMsg       = '';<br><br> vElementList = window.document.getElementsByTagName("div");<br> for (i=0; i &lt; vElementList.length; i++)<br> {<br>  if (vElementList.className == "ErrorPageMessage")<br>  {<br>    vErrorStack = (vErrorStack ==null?"":vErrorStack+"&lt;br/&gt;")+vElementList[i].innerHTML;<br>    vElementList[i].innerHTML = '';<br>    vOraError = vErrorStack.split("ORA-");<br><br>    for(var i=1; i &lt; vOraError.length; i++) {<br><br>      vOraCode = vOraError[i].substring(0,5);<br><br>      vAjaxRequest = new htmldb_Get(null,&amp;APP_ID.,'APPLICATION_PROCESS='+p_err_process,0);<br>      vAjaxRequest.add(p_err_item,vOraCode);<br>      vAjaxResult = vAjaxRequest.get();<br><br>      if (vAjaxResult) {<br>        vMyMsg = vMyMsg + vAjaxResult + '&lt;br&gt;' ;<br>      } else {<br>        vMyMsg = vMyMsg + 'ORA-'+vOraError[i].substring(0) + '&lt;br&gt;' ;<br>      }<br><br>    }<br>    document.getElementById('ORA').innerHTML = vMyMsg;<br><br>  }<br> }<br>}<br>&lt;/script&gt;<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">   <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">1.2 Under Definition / Header. <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">&lt;body onload="MyErrorPage('F103_ERR_CODE','getErrorMsg')" #ONLOAD#&gt;#FORM_OPEN#<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">You can replace with your own ITEM and APPLICATION PROCESS<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">2. Under Error Page Template Control<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">&lt;table summary=""&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="/i/error.gif" border="0" /&gt;&lt;/td&gt;<o:p></o:p><br>&lt;/tr&gt;<o:p></o:p><br>&lt;b id='ORA'&gt;Error&lt;/b&gt;<o:p></o:p><br>&lt;tr&gt;&lt;td&gt;&lt;a href=#BACK_LINK#&gt;#OK#&lt;/a&gt;&lt;/td&gt;<o:p></o:p><br>&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">3. Application Item <o:p></o:p></span></p><p class="MsoNormal"><span style="" lang="EN-AU">F103_ERR_CODE<span style="">   </span><o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">4. Application Proccess.<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">Name : getErrorMsg<o:p></o:p><br>Process Poing : ON DEMAND<span style="">  </span>( Make sure about this )<o:p></o:p><br>Process Text :<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">declare<o:p></o:p><br><span style="">  </span>l_msg<span style="">  </span>varchar2(500);<o:p></o:p><br>begin<o:p></o:p><br><span style="">  </span>for i in (select msg_code, msg_desc from apex_message<o:p></o:p><br><span style="">             </span>where msg_code = :F103_ERR_CODE ) <o:p></o:p><br><span style="">  </span>loop<o:p></o:p><br><span style="">    </span><span style=""></span>l_msg := 'GEN-'||i.msg_code||': '||i.msg_desc;<o:p></o:p><br><span style="">  </span>end loop;<span style="">    </span><o:p></o:p><br><span style="">  </span>htp.prn(l_msg);<o:p></o:p><br>end;<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">5. Create Apex_message (<o:p></o:p><br><span style=""> </span>id<span style="">               </span>number,<span style="">          </span>-- PK<o:p></o:p><br><span style=""> </span>msg_code<span style="">  </span>varchar2(10)<span style="">     </span>-- UK<o:p></o:p><br><span style=""> </span>msg_desc<span style="">  </span>varchar2(100) );<o:p></o:p><span style=""> </span><o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">6. Scenario: Table or View does not exist coming with 3 "ORA" errors<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">There is only one record in Apex_message with msg_code = '00942' therefor it will replace error message for ORA-00942.<span style="">  </span>( note that value for msg_code is<span style="">  </span>'00942' and not 'ORA-00942' )<o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">Before<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">ORA-06550: line 1, column 28: PL/SQL:<o:p></o:p><br>ORA-00942: table or view does not exist<o:p></o:p><br>ORA-06550: line 1, column 7: PL/SQL: SQL Statement ignored<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 247.8pt; text-indent: -247.8pt;"><span style="" lang="EN-AU"> After<o:p></o:p><br></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">ORA-06550: line 1, column 28: PL/SQL:<br>GEN-00942: My own Message <o:p></o:p><br>ORA-06550: line 1, column 7: PL/SQL: SQL Statement ignored<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-AU">I did this because I do not want to create my own DML process for each table<o:p></o:p><br>I hope this can help. <o:p></o:p>  <o:p></o:p></span></p> <p class="MsoNormal">Regards</p> <p class="MsoNormal">Marcelo</p>

    True the main method does not throw any exceptions, that's because there is no higher level to throw them to (actually it implicitly throws any uncaught exceptions to the JVM). That does not mean that you can't write your own try catch block around the code in the main method.

  • Error handler for event based messaging framework

    I've been very interested in using the event based messaging framework (described here http://forums.ni.com/t5/LabVIEW/Community-Nugget-2009-03-13-An-Event-based-messageing-framework/td-p...) for my next large application.
    My main concern is the fact that it seems like typos would be very difficult to debug since you need to ignore unknown commands to make this system work.
    To solve this problem I've been considering the idea of having a single message error handler VI which will store all valid commands and check all sent commands to see if they are valid.  Each VI would send out a register message on startup with their name and all messages they can send and receive.  The message error handler would store these and then check all future messages to be sure it is a valid message, throwing an error if it is not.
    My basic problem is this: for this to work the message error handler VI would have to be started before any messages are sent so that it can capture all the register events.  If this is a VI that will be continuously running the entire application how can I ensure it starts first since I cannot wait for it to complete? (I.e. the usual method of running an error out wire or using a sequence structure will not work since everything will then wait for it to complete which will not happen until the program is ready to shut down)
    I'm assuming the answer might be to use an asynchronous call but I'm not very familiar with this method.  
    Any help is appreciated.  Thanks. 

    Could you just use the error handler as a subVI inside a case structure that is only called when you have new message to be checked? I'm not sure I understood the exact functionality you are looking for, so sorry if this does not apply.
    Zach P.
    Product Support Engineer | LabVIEW R&D | National Instruments

  • Error Handling on procedure based forms

    Hi all,
    I have seen examples of error handling on table based forms like
    the following:
    begin
    doInsert;
    exception
    when others then
    --redirect to some error page
    I have tried the same with a procedure based form by wrapping
    the doSubmit procedure, but when the procedure returns an
    exception, it doesn't execute my exception handling code.
    Any ideas on why this is happening or at least how I can catch
    these exceptions with my own exception handler?
    Thanks,
    Curt

    Chetan, Antonio,
    I opened a TAR on this issue with Oravle and they got the same
    results. Thay suggested a work around of creating an error table
    that gets written to and then dispaly and new page to retrieve
    the error from the table.
    What I ended up doing is creating a dummy procedure that does
    nothing (NULL). The form based on the dummy procedure allows me
    to get the values I need from the user.
    The procedure always returns succesful since it doesn't do
    anything. So in the form success code area I call the real
    procedure, check the return value, and now I can redirect back
    to the orignal form on error, or direct to another paqe on
    success.
    Not the most elegant solution, but it is working for now.
    Curt

  • Issue with SRDemo error handling

    Hi All,
    Glad the forums are back up and running. In debugging some error-handling issues in our own application, I found an issue in the error handling code of SRDemo. I thought I'd post the issue here, as many of us (myself included) use some SRDemo code as the basis for our own applications.
    The issue can be found in the oracle.srdemo.view.frameworkExt.SRDemoPageLifecycle class, specifically in the translateExceptionToFacesErrors method. I'll show the code that has the issue first, and explain the issue afterwards:
            if (numAttr > 0) {
                Iterator i = attributeErrors.keySet().iterator();
                while (i.hasNext()) {
                    String attrNameKey = (String)i.next();
                     * Only add the error to show to the user if it was related
                     * to a field they can see on the screen. We accomplish this
                     * by checking whether there is a control binding in the current
                     * binding container by the same name as the attribute with
                     * the related exception that was reported.
                    ControlBinding cb =
                        ADFUtils.findControlBinding(bc, attrNameKey);
                    if (cb != null) {
                        String msg = (String)attributeErrors.get(attrNameKey);
                        if (cb instanceof JUCtrlAttrsBinding) {
                            attrNameKey = ((JUCtrlAttrsBinding)cb).getLabel();
                        JSFUtils.addFacesErrorMessage(attrNameKey, msg);
                }Now, this bit of code attempts to be "smart" and only show error messages relating to attributes if those attributes are in fact displayed on the screen. It does so by using a utility method to find a control binding for the attribute name. There are two issues with this code, one obvious, and one that is a bit more subtle.
    The obvious issue: if there is a binding in the page definition, it doesn't necessarily mean that the attribute is shown on the screen. It's a good approximation, but not exact.
    The other issue is more subtle, and led to errors being "eaten," or not shown, in our application. The issue comes if you are using an af:table to display and update your data. In that case, the findControlBinding will not find anything for that attribute, since the attribute is contained within a table binding.
    Just posting this as a word to the wary.
    Best,
    john

    somehow, this message got in the wrong thread....
    Hi Frank,
    Yes, I simply scripted it out this way to contrast the behaviour if the first attribute was read-only vs not read-only. I found the issue on a page in our app that was simply drag-and-drop the VO from the data control on the page.
    It's quite annoying, because our particular use case that hit this error is a "save" button on the page. If the commit operation doesn't return any errors (and it doesn't in this use case!), we add a JSF message saying "save successful" - then the attribute errors are further added later in the page lifecycle, so we get 3 messages: "Save successful" and "Fix this error" and "Tried to set read-only attribute" - quite confusing to the end-user when the only message they should see is "fix this error."
    At any rate, the fix is to simply re-order the attributes in the page definition - that doesn't affect the UI at all, other than to fix this issue.
    John
    it was supposed to be something like:
    Hi Frank,
    Thanks for the reply. I was simply posting this here so that people who use the SRDemo application techniques as a basis for developing the same functionality in their own apps (like me) can be aware of the issue, and avoid lots of head-scratching to figure out "what happened to the error message?"
    John

  • How to Setup Forward Error Handling in PI Scenarios. Can you help me with the same with screen shots if possible?

    Dear all
    How to Setup Forward Error Handling in PI Scenarios. Can you help me with the same with screen shots if possible?
    Thanks
    Regards
    karan

    Hello
    These are the following errors
    1. Trace level="1" type="T">no interface action for sender or receiver found</Trace>
    2. <Trace level="1" type="System_Error">Application-Error exception return from pipeline processing!
    3.
    <Trace level="1" type="T">Application Error at Receiver... => ROLLBACK WORK</Trace>  
    <Trace level="1" type="T">System Error at Receiver... => ROLLBACK WORK</Trace>  
    <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />  
    <Trace level="1" type="System_Error">Application-Error exception return from pipeline processing!</
    Trace level="3" type="T">No persisting of message after plsrv call, because of config</Trace>Trace level="3" type="T">Error of the prevous version:</TraceTrace level="3" type="T">Error ID APPLICATION_ERROR</Trace>
    tThere are repeating errors also.
    TThanks
    Regards
    kkaran

  • 'Structured' error handling and reentrancy

    The parentheses in the subject are due to the fact that I'm not using the Structured Error Handler reference library, but have rolled my own to do something similar but in the manner I want it to. I don't actually use the SEH (haven't even got it installed at the moment on this PC) so am not sure exactly how it works under the hood.
    I have a reasonably large application with a number of distinct parallel modules (GUI, state module, communication, motion control). The final parallel module is an error handling module. This consists of two queues - one for incoming errors, and one for outgoing actions. Errors are dequeued and their codes checked for their category (critical, warning, ignore or unclassified, for instance) and the appropriate category is returned to a local error handler via the action queue. When an error is passed to a local error handler VI, it enqueues the error to the main handler and waits for a response to that particular error.
    This all works nicely, in much the same way the SEH would do. However, with either the SEH or my local error handler method, I find myself wondering how often to place these down and the consequences of doing so. If they're non-reentrant, I imagine I may end up with lots of parallel processes sitting patiently to access the VI as it's blocked by another, causing jitter. If I go pre-allocated clone, I could potentially have many many callers using this function, which strikes me as a bit of a waste of resources. My gut feel is to go with shared-allocation clones, as the vast majority of the time it'll be no error passed through an empty case, and not to place them in absolutely every subVI - just perhaps after a state executes in the state handler, in all the parallel loops of the submodules etc.
    Just wondering what anyone else does with their error handling solution, and whether my thoughts make sense.
    CLD

    Having chatted to my friendly neighbourhood Spiderman Architect, he suggested I should probably just stop being a wimp and just use pre-allocated clones to avoid the jitter and to stop worrying about the resource hit, as you suggest
    I'll use the same code on both PC host and RT host, hence the jitter concerns on the RT.
    Thanks for the thoughts!
    CLD

  • Error handling in bdc Fb01along with erros in Idoc.

    Hi,
    Can any one send me the sample code for the error handling in bdc Fb01along with erros in Idoc. Actually, mail should be sent
    Thanks
    Avi.

    Hi,
    This may help you.
    <b>FORM send_mail USING   receiver.
      CLEAR: w_lines,tbl_packing_list,tbl_object_header,
                 tbl_contents_txt, tbl_receivers.
      REFRESH:tbl_packing_list, tbl_object_header,
               tbl_contents_txt,tbl_receivers.
      SORT tbl_err.
      DELETE ADJACENT DUPLICATES FROM tbl_err COMPARING ALL FIELDS.
      IF NOT tbl_err[] IS INITIAL.
    Preparing the email.
        PERFORM prepare_email.
      ELSE.
       If sy-subrc NE 0.
          MOVE sy-subrc TO w_code.
       ENDIF.
        EXIT.
      ENDIF.
    Get  the content of header e-mail document data
      PERFORM document_data.
    Get details of the error file attached (like type of file and format)
      PERFORM packing_list.
    Get receiver mail id's
      tbl_receivers-receiver = receiver.
      tbl_receivers-rec_type = 'C'.
      tbl_receivers-express  = c_flag.
      tbl_receivers-sap_body = c_flag.
      APPEND tbl_receivers.
    Call FM to send E-mails to receivers
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                document_data              = st_document_data
                put_in_outbox              = 'X'
           TABLES
                packing_list               = tbl_packing_list
                object_header              = tbl_object_header
                contents_txt               = tbl_contents_txt
                receivers                  = tbl_receivers[]
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    ENDFORM.                    " send_mail
    *&      Form  prepare_email
          text
    -->  p1        text
    <--  p2        text
    FORM prepare_email.
    E-Mail body content
      IF NOT w_lifnr IS INITIAL.
        CONCATENATE text-015 w_docnum text-016
               INTO tbl_contents_txt-line
          SEPARATED BY space.
      ENDIF.
      APPEND tbl_contents_txt.
      CLEAR tbl_contents_txt.
    E-mail error file attachment header
      CONCATENATE text-063 text-064
                   text-065 text-066 c_comma
             INTO tbl_contents_txt-line
        SEPARATED BY c_comma.
      APPEND tbl_contents_txt.
      CLEAR tbl_contents_txt.
    E-mail error file attachment content
      LOOP AT tbl_err.
        CONCATENATE w_docnum tbl_err-v_segnum
                    tbl_err-msg tbl_err-type
          INTO tbl_contents_txt-line
          SEPARATED BY c_comma.
        CONCATENATE c_linefeed tbl_contents_txt-line c_comma
               INTO tbl_contents_txt-line.
        APPEND tbl_contents_txt.
        CLEAR tbl_contents_txt.
      ENDLOOP.
    ENDFORM.                    " prepare_email
    *&      Form  document_data
          text
    -->  p1        text
    <--  p2        text
    FORM document_data.
      CLEAR w_line.
      IF NOT w_lifnr IS INITIAL.
        CONCATENATE text-075 text-027 sy-datum sy-uzeit INTO w_line
        SEPARATED BY c_uscore.
      ENDIF.
      st_document_data-obj_name  = w_line.
      st_document_data-obj_descr = w_line.
      st_document_data-priority  = 1.
      st_document_data-obj_prio  = 1.
    ENDFORM.                    " document_data
    *&      Form  packing_list
          text
    -->  p1        text
    <--  p2        text
    FORM packing_list.
      CLEAR w_lines.
      DESCRIBE TABLE tbl_err LINES w_lines.
      READ TABLE tbl_contents_txt INDEX w_lines.
      tbl_packing_list-head_start = 1.
      tbl_packing_list-head_num   = 1.
      tbl_packing_list-body_start = 1.
      tbl_packing_list-body_num   = 1.
      tbl_packing_list-doc_type   = 'RAW'.
      APPEND tbl_packing_list.
      tbl_packing_list-head_start = 1.
      tbl_packing_list-head_num   = 0.
      tbl_packing_list-body_start = 2.
      tbl_packing_list-body_num   = w_lines + 1.
      tbl_packing_list-doc_type   = 'CSV'.
      tbl_packing_list-obj_descr  = 'Error_Attachment'(060).
      IF NOT w_lifnr IS INITIAL.
        tbl_packing_list-obj_name   = 'Idoc Number is'(072).
      ENDIF.
      tbl_packing_list-doc_size   = 255 * ( w_lines + 1 ).
      APPEND tbl_packing_list.
    ENDFORM.                    " packing_list
    </b>
    Thanks
    Manju.

  • Receiver Feedback with no Error Handling (Input Design Requested)

    Hi Community,
    Today we have a pretty standard integration scenario that takes in flat files and converts them to Idocs for target SAP systems.  We are looking to redesign the current IDoc interface (posts a customized FIDCC1) under the principle that IDocs in errors on target are always corrected by a change in the source, so essentially we want to report errors back to the source and completely delete the IDoc.  I guess this looks like a synchronous call?, but I want to remain as loosely coupled for this.  Since we also process these files in batches (i.e. each file contains 1 to many invoices), we would like to return the results back to the source based on each file.  For example, the message back to the source (in email so a user can act on it, not a system) could be:
    a) file failed because structure is incorrect (like an XSD type check).
    or of the file makes it through XI,
    b) list of invoices failed because xxx is incorrect and list of invoices that processed.
    We are open to using proxies, any kind of IDoc error handling that could do this, workflows, status idocs, etc.  Every option is on the table. 
    Thanks!
    Peter

    peter
    if u are open to proxes then u might haveone interface that will send the data to proxy and thru proxy u update the idoc....if idoc goes fpor an error u can have another interface triggered that will update/delete the soruce data...for this u might need to pass the soruce files details to proxy and back

Maybe you are looking for

  • Problem in Transport Acknowledgements

    Hi I have designed a Sync-Async scenario wherein the Transport acknowledgement from File adapter(async) is used as basis for determining how the dummy response to Sync sender interface would be.. Now if i get a FTP access error/ File writing error in

  • ITunes installation

    every time i open itunes (by clicking on the desktop shortcut) it says "Windows Installer: Preparing to install" then " please wait while windows configures iTunes" then it opens after that but i cant sync to my ipod because the system that comunicat

  • Dir 10 projector - sudden errors on MacBook Pro

    Yesterday a coupe of users had script errors after installing an interactive on both a MacBook and MacBookPro, when starting an application that I've been distributing for several years now. It is a 10.1.1 projector (all the latest updates), using a

  • WLC Port Channel Host Flapping

    Hello, I have setup LAG for one of our 5508 controllers and have connected 4 of the 8 ethernet ports to a 4507 switch. After configuring 2 port channels on the switch we are receiving a host flapping error between the port channels and it seems to be

  • Encrypt sys and system tables

    How to encrypt/restrict sys and system tables so that no user can view them. On one of the database few user are having dba access. Is it possible to restrict their access on the dictionary tables.