Get exception event properties for add them in an error e-mail

Hello,
I made a process with Workbench ES that uses a GeneratePDFService service (CreatePDF operation) which convert TIFF files into PDF files.
I've used an exception event to handle each exception that can be caught : SystemException, ConversionException, InvalidParameterException and FileFormatNotSupportedException.
I have configured each exception event as following :
- No filter
- Callback - Process Data Map :
/process_data/@exceptionName = /Exception/FaultName
/process_data/@exceptionSource = /Exception/FaultSource
/process_data/@exceptionMessage = /Exception/FaultMessage
Where exceptionName, exceptionSource and exceptionMessage are process string variables (not input, output or required variables).
I have linked an EmailService service (Send With Document operation) on Exception events output and have used these variables in my body e-mail content as following :
Exception : {$ /process_data/@exceptionName $}
Exception source : {$ /process_data/@exceptionSource $}
Exception message : {$ /process_data/@exceptionMessage $}
So the problem is that there is blank instead of my variable value in my e-mail !
Can somebody help me to solve this issue? Thanks

Hi all,
I am trying to do the same thing, and my process works when I have set the variables as input.
However I would like to have more info on which process that exception comes from, the stack trace and so on.
How can I obtain these values?
Sincerely
Kim

Similar Messages

  • Unable to get automatic event handling for OK button.

    Hello,
    I have created a form using creatobject. This form contains an edit control and Search, Cancel buttons. I have set the Search buttons UID to "1" so it can handle the Enter key hit event. Instead its caption changes to Update when i start typing in the edit control and it does not respond to the Enter key hit. Cancel happens when Esc is hit.
    My code looks like this -
    Dim oCreationParams As SAPbouiCOM.FormCreationParams
            oCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)
            oCreationParams.UniqueID = "MySearchForm"
            oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Sizable
                    Dim oForm As SAPbouiCOM.Form = SBO_Application.Forms.AddEx(oCreationParams)
    oForm.Visible = True
    '// set the form properties
            oForm.Title = "Search Form"
            oForm.Left = 300
            oForm.ClientWidth = 500
            oForm.Top = 100
            oForm.ClientHeight = 240
            '// Adding Items to the form
            '// and setting their properties
            '// Adding an Ok button
            '// We get automatic event handling for
            '// the Ok and Cancel Buttons by setting
            '// their UIDs to 1 and 2 respectively
            oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
            oButton = oItem.Specific
            oButton.Caption = "Search"
            '// Adding a Cancel button
            oItem = oForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 75
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
            oButton = oItem.Specific
            oButton.Caption = "Cancel"
    oItem = oForm.Items.Add("NUM", SAPbouiCOM.BoFormItemTypes.it_EDIT)
            oItem.Left = 105
            oItem.Width = 140
            oItem.Top = 20
            oItem.Height = 16
            Dim oEditText As SAPbouiCOM.EditText = oItem.Specific
    What changes do i have to make to get the enter key to work?
    Thanks for your help.
    Regards,
    Sheetal

    Hello Felipe,
    Thanks for pointing me to the correct direction.
    So on refering to the documentation i tried out a few things. But I am still missing something here.
    I made the following changes to my code -
    oForm.AutoManaged = True
    oForm.SupportedModes = 1 ' afm_Ok
    oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
    oItem.SetAutoManagedAttribute(SAPbouiCOM.BoAutoManagedAttr.ama_Visible, 1, SAPbouiCOM.BoModeVisualBehavior.mvb_Default)
            oButton = oItem.Specific
            oButton.Caption = "OK"
    AND
    oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE
    oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
    oItem.AffectsFormMode = False
    I get the same behaviour OK button changes to update and enter key does not work.
    Could you please tell me find what is it that i am doing wrong?
    Regards,
    Sheetal

  • How can i get the data from database & add them as a link

    Hi,
    how can i get a data from a database(DB2) and that data will be having a file so i should make them as a link.i tried it in jsp .
    <%
    Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
    Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");     
    response.setContentType("text/html");
    Connection conn = null;
    conn = DriverManager.getConnection("jdbc:db2:spintran");
    Statement stmt = conn.createStatement();
    stmt.executeQuery("set current schema tut");
    ResultSet rs = stmt.executeQuery("select * from tutorial");     
    %>
    Type Of the Category : &nbsp&nbsp&nbsp
    <%
         while (rs.next())
         String desc = rs.getString(1);     
         out.println(desc);
    %>
         <A HREF = "<%=desc%>"><%=desc%> </A>
         <%
         %>
    but it is not working.how can i link.
    thank you.

    what is desc? is it the file name ? whats the data type of desc in db? INFILE?
    if desc is just the name of the file, then make sure that such a file exists in the proper folder.only then the link works..
    that is, if desc is 'a.jpg' then a.jpg should be existing in the same folder as your html is.

  • When trying to send someone a photo via email, I get "Drop files here to add them as attachments". What does that mean?

    That kinda says it all. How do I drop files?

    You have to use File Sharing with iTunes in order to send the file to your computer. This kb article does not mention the ePub format, but the process works exactly the same way, whether you export as Pages, Word, PDF or ePub files. You just need to save it to your computer from iTunes. Read this for the details.
    Pages for iOS (iPad): Share documents by connecting to iTunes

  • Need C# sample for Add-On

    Can anyone share a simple add-on solution with me that is written in Visual Studio 2005 and C#?  Even if it's just a simple "Hello, World" one.  But it must have been installed and connected to by you and validated that it works.  I don't want a link to the samples because none of them work for me let alone compile. 
    I would really appreciate this!
    Regards,
    David Moschkau

    This was my first test app translated from the VB sample:
    Important - remember to set the Project, Properties, Debug to pass the command line argument
    0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056
    Program.cs
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    namespace SB1TestApplication
        static class Program
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
                SimpleForm frm = new SimpleForm();
                System.Windows.Forms.Application.Run();
    SimpleForm.cs
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;
    using System.Xml;
    namespace SB1TestApplication
        public class SimpleForm
            private SAPbouiCOM.Application mSBOApplication;
            private SAPbouiCOM.Form oForm;
            private void SetApplication()
                SAPbouiCOM.SboGuiApi sboGuiApi;
                string connectionString;
                sboGuiApi = new SAPbouiCOM.SboGuiApi();
                // by following the steps specified above, the following
                // statment should be suficient for either development or run mode
                connectionString = (string)Environment.GetCommandLineArgs().GetValue(1);
                // connect to a running SBO Application
                sboGuiApi.Connect(connectionString);
                // get an initialized application object
                this.mSBOApplication = sboGuiApi.GetApplication(0);
            private void CreateMySimpleForm()
                SAPbouiCOM.Item item;
                // we will use the following objects to set
                // the specific values of every item
                // we add.
                // this is the best way to do so
                SAPbouiCOM.Button oButton;
                SAPbouiCOM.StaticText oStaticText;
                SAPbouiCOM.EditText oEditText;
                SAPbouiCOM.ComboBox oComboBox;
                // add a new form
                SAPbouiCOM.FormCreationParams oCreationParams;
                oCreationParams = (SAPbouiCOM.FormCreationParams)
                    this.mSBOApplication.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams);
                oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed;
                oCreationParams.UniqueID = "MySimpleForm";
                oForm = this.mSBOApplication.Forms.AddEx(oCreationParams);
                // add a User Data Source to the form
                oForm.DataSources.UserDataSources.Add("EditSource", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20);
                oForm.DataSources.UserDataSources.Add("CombSource", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20);
                // set the form properties
                oForm.Title = "Simple Form";
                oForm.Left = 400;
                oForm.Top = 100;
                oForm.ClientHeight = 80;
                oForm.ClientWidth = 350;
                // Adding Items to the form
                // and setting their properties
                // Adding an Ok button
                // We get automatic event handling for
                // the Ok and Cancel Buttons by setting
                // their UIDs to 1 and 2 respectively
                item = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
                item.Left = 6;
                item.Width = 65;
                item.Top = 51;
                item.Height = 19;
                oButton = (SAPbouiCOM.Button)item.Specific;
                oButton.Caption = "Ok";
                // Adding a Cancel button
                item = oForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
                item.Left = 75;
                item.Width = 65;
                item.Top = 51;
                item.Height = 19;
                oButton = (SAPbouiCOM.Button)item.Specific;
                oButton.Caption = "Cancel";
                // Adding a Rectangle
                item = oForm.Items.Add("Rect1", SAPbouiCOM.BoFormItemTypes.it_RECTANGLE);
                item.Left = 0;
                item.Width = 344;
                item.Top = 1;
                item.Height = 49;
                // Adding a Static Text item
                item = oForm.Items.Add("StaticTxt1", SAPbouiCOM.BoFormItemTypes.it_STATIC);
                item.Left = 7;
                item.Width = 148;
                item.Top = 8;
                item.Height = 14;
                item.LinkTo = "EditText1";
                oStaticText = (SAPbouiCOM.StaticText)item.Specific;
                oStaticText.Caption = "Static Text 1";
                // Adding another Static Text item
                item = oForm.Items.Add("StaticTxt2", SAPbouiCOM.BoFormItemTypes.it_STATIC);
                item.Left = 7;
                item.Width = 148;
                item.Top = 24;
                item.Height = 14;
                item.LinkTo = "ComboBox1";
                oStaticText = (SAPbouiCOM.StaticText)item.Specific;
                oStaticText.Caption = "Static Text 2";
                // Adding a Text Edit item
                item = oForm.Items.Add("EditText1", SAPbouiCOM.BoFormItemTypes.it_EDIT);
                item.Left = 157;
                item.Width = 163;
                item.Top = 8;
                item.Height = 14;
                oEditText = (SAPbouiCOM.EditText)item.Specific;
                // bind the text edit item to the defined used data source
                oEditText.DataBind.SetBound(true, "", "EditSource");
                oEditText.String = "Edit Text 1";
                // Adding a Combo Box item
                item = oForm.Items.Add("ComboBox1", SAPbouiCOM.BoFormItemTypes.it_COMBO_BOX);
                item.Left = 157;
                item.Width = 163;
                item.Top = 24;
                item.Height = 14;
                item.DisplayDesc = false;
                oComboBox = (SAPbouiCOM.ComboBox)item.Specific;
                // bind the Combo Box item to the defined used data source
                oComboBox.DataBind.SetBound(true, "", "CombSource");
                oComboBox.ValidValues.Add("1", "Combo Value 1");
                oComboBox.ValidValues.Add("2", "Combo Value 2");
                oComboBox.ValidValues.Add("3", "Combo Value 3");
                // set the form as visible
            private void SaveAsXML()
                // always use XML to work with user forms.
                // after creating your form save it as an XML file
                XmlDocument oXmlDoc = new XmlDocument();
                string sXmlString;
                // get the form as an XML string
                sXmlString = oForm.GetAsXML();
                // load the form's XML string to the
                // XML document object
                oXmlDoc.LoadXml(sXmlString);
                // save the XML Document
                oXmlDoc.Save("C:\MySimpleForm.xml");
            public SimpleForm()
                // set this.mSBOApplication with an initialized application object
                SetApplication();
                // Create the simple form
                CreateMySimpleForm();
                oForm.Visible = true;
                // Save the form to an Xml document
                SaveAsXML();

  • An event handler for several subclasses.

    I've been trying to write an event handler that is parameterized by a window
    being passed to it. The event handler is intended to handle the exception event
    that occurs when the window completes. I have had problems trying to write this.
    The scenario is as follows.
    I have a task that listens to events that respresent requests for a window being
    opened. On receiving these, it starts the window, also as an asynchronous task.
    The windows that may be opened (say window classes B, C, and D) are all
    subclasses of window class A. The event handler that I register for (after
    instantiating the window) takes a window of class A as parameter. It responds to
    the exception events for the Display() method of window passed in.
    Now the problems I have encountered are as follows :
    To allow the event handler to respond to the exception event of a window of
    class A, class A has the exception event defined for it. To allow me to start a
    window of class B where completion = event, I also have to define the same
    exception event. This hides the return and exception for class A. The
    implications of this in the event handler is that the event cannot be trapped
    unless I cast the parameter passed in into class B on the ' when return_event '
    line. This makes the event handler specific to class B.
    (This situation is also presumable caused by the fact that each subclasses
    overrides the Display method of window class A, and the exception event is
    defined for the Display method.)
    An alternative approach I tried was using interfaces. I defined the exception
    event as an event on an interface. This was defined with the same parameters as
    the exception events of classes B, C, and D would have (ie. the exception
    event had two parameters - one of type GenericException, and one of ErrorMgr). I
    then made classes B, C, and D implement the interface. The event handler
    parameter would be the interface rather than class A. However class B would not
    compile as the GenericException parameter for the event in the interface uses
    the input mechanism, but the GenericException parameter for the exception event
    in the display event of classes B, C, and D uses copy input. I have ben unable
    to find a way to change the mechanism for event parameters.
    Has anybody got any ideas as to how I may be able to achieve the goals of an
    event handler that can respond the exception event of a number of subclasses.
    Thanks
    Steve Elvin
    Systems Developer
    Frontline Ltd.
    UK.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Steve,
    Try this. Have a method in your super class A , say StubDisplay
    which processes the event loop.
    Also make this method return Exception and/or completion events you
    desire.
    Instead of overriding Display() in your sublclasses, override this
    StubDisplay method.
    You need not have to redefine the exception/completion events in
    your sublclasses B,C ..because they naturally inherit from the super class
    A.
    Using interfaces may not be a good idea in this case because, you
    will be forced to implement them in your subclasses even if you dont
    need them in some specific cases.
    Good luck!
    Ajith Kallambella M.
    Forte Systems Engineer,
    Internationational Business Corporation.
    From: [email protected][SMTP:[email protected]]
    Reply To: [email protected]
    Sent: Wednesday, May 13, 1998 4:42 AM
    To: [email protected]
    Subject: An event handler for several subclasses.
    I've been trying to write an event handler that is parameterized by a
    window
    being passed to it. The event handler is intended to handle the exception
    event
    that occurs when the window completes. I have had problems trying to write
    this.
    The scenario is as follows.
    I have a task that listens to events that respresent requests for a window
    being
    opened. On receiving these, it starts the window, also as an asynchronous
    task.
    The windows that may be opened (say window classes B, C, and D) are all
    subclasses of window class A. The event handler that I register for (after
    instantiating the window) takes a window of class A as parameter. It
    responds to
    the exception events for the Display() method of window passed in.
    Now the problems I have encountered are as follows :
    To allow the event handler to respond to the exception event of a window
    of
    class A, class A has the exception event defined for it. To allow me to
    start a
    window of class B where completion = event, I also have to define the same
    exception event. This hides the return and exception for class A. The
    implications of this in the event handler is that the event cannot be
    trapped
    unless I cast the parameter passed in into class B on the ' when
    return_event '
    line. This makes the event handler specific to class B.
    (This situation is also presumable caused by the fact that each subclasses
    overrides the Display method of window class A, and the exception event is
    defined for the Display method.)
    An alternative approach I tried was using interfaces. I defined the
    exception
    event as an event on an interface. This was defined with the same
    parameters as
    the exception events of classes B, C, and D would have (ie. the
    exception
    event had two parameters - one of type GenericException, and one of
    ErrorMgr). I
    then made classes B, C, and D implement the interface. The event handler
    parameter would be the interface rather than class A. However class B
    would not
    compile as the GenericException parameter for the event in the interface
    uses
    the input mechanism, but the GenericException parameter for the exception
    event
    in the display event of classes B, C, and D uses copy input. I have ben
    unable
    to find a way to change the mechanism for event parameters.
    Has anybody got any ideas as to how I may be able to achieve the goals of
    an
    event handler that can respond the exception event of a number of
    subclasses.
    Thanks
    Steve Elvin
    Systems Developer
    Frontline Ltd.
    UK.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • I get exception when I display  2 diff portlet apps using JSF technology?

    I tried to show different web apps in 2 different porlets but I get exception. Running each of them independently there is no problem but running them together results in following exception. Any ideas?
    Nested Exception is java.lang.ClassCastException
         at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:698)
         at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:429)
         at com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:105)
         at org.apache.jsp.intro_jsp._jspx_meth_f_view_0(org.apache.jsp.intro_jsp:94)

    The logs are by default located in Tomcat/logs and configurable by Tomcat/conf/logging.properties.
    Having said that, when I google on [java.lang.NoClassDefFoundError: Could not initialize class org.apache.myfaces.shared_tomahawk.config.MyfacesConfig|http://www.google.com/search?q=java.lang.NoClassDefFoundError%3A+Could+not+initialize+class+org.apache.myfaces.shared_tomahawk.config.MyfacesConfig] then I have the impression that you're using Tomahawk 1.1.7 snapshot and there might be a bug in it. Try using Tomahawk 1.1.6 and see if it works. After all, you may have more luck if you post this issue at their own mailinglist at tomahawk.apache.org.

  • I can't get my gmail to show up with the rest of my mail

    Not sure why this is happening since my wife's identical phone has no problem doing it.  But when I try to add my gmail account to the mail widget I get a 503 80345 error.   The problem is that I can go to the browser on the phone or a computer and type in the identical information and log onto my gmail account.
    The workaround I have now is two mail icons the gmail one and then the mail for all my others.
    Can anyone help!
    thanks in advance,
    K

    Good afternoon KajunH.
    I understand how inconvenient it can be to have separate e-mail folders, especially when you'd like to check all accounts at the same time.  How many Gmail accounts do you have?  How many Gmail accounts does your wife have?  The primary Gmail account goes into the separate Gmail folder, as that is the account that syncs with your Android device.  If you have other Gmail accounts, you are able to add them into the regular E-Mail folder.  The error you get, 503 80345, is because that account is already the default account on your phone.  You're not able to add it to that separate E-Mail folder as well.
    If you still need assistance or have more questions, please feel free to send me a Direct Message and I'll be happy to follow up with you.
    Thank you,
    VanessaS_VZW
    Follow us on Twitter @VZWSupport

  • Hello! I have one iTunes library on my iPod and one iTunes library on my computer. When I connect my iPod touch to my PC, however, I cannot find any files in my iPod except for pictures. How can I find the music files so I can add them to my iTunes?

    Hello! I have one iTunes library on my iPod and one iTunes library on my computer. When I connect my iPod touch to my PC, however, I cannot find any files in my iPod except for pictures. How can I find the music files so I can add them to my iTunes?

    You can't do that.
    And before you decide to store any music that you own on a computer at work, talk to your IT department. Many organizations do not permit it for legal reasons. Standard policies are that anything stored on company owned computers is the property of the company. It could not be legally stored on their machines unless you transfer the licenses and all copies, physical and digital, to the company, meaning you no longer own the music. If they were to be audited and could not prove that they own the music, they would be subject to copyright violation penalties. Just use your iPod when you're at the office if you want to listen to music.

  • I am having a difficult time getting the duration of multiple selected clips. The duration display only will display the time for one clip.  Yes, I know I can add them up myself, but why?  :-)

    I am having a difficult time getting the duration of multiple selected clips. The duration display will only display the time for one clip not multiple clips.  Yes, I know I can add them up myself, but why?  :-)
    I am using imovie 10.0.6

    For reasons that you would have to ask Apple for they decided not to allow the precise position of the playhead to be shown in iMovie 10 (unlike in FCP 10.1.x).
    Geoff

  • Hi, I have added on Musique finder my old CD and want now to add them on my iTunes, please, could you explain to me step by step how to do this? Mant tks in advances for your kind help

    Hi, I have added on Musique finder my old CD and want now to add them on my iTunes, please, could you explain to me step by step how to do this? Mant tks in advances for your kind help

    Correct, it will only be one-level, the Photos app doesn't support sub-albums - the sub-folders photos will be included in the parent's album.
    If you select My Pictures at the top of the Photos tab when syncing, then you should get an album for each folder that is directly under it - so if I understand correctly what you described then that would mean an album for 2013, one for 2012 etc. And each of those should include all the photos in the subfolders under it - so 2013 would include the photos from the events and months subfolders under it.
    You can't sync them separately, only the contents of the last sync remains on the iPad, by not including a folder in the next photo sync you are effectively telling iTunes that you no longer want that folder/album on the iPad so it will be removed and be replaced by the contents of the new sync (you can't delete synced photos directly on the iPad, instead they are deleted by not including them in the next sync).
    The app that I use, Photo Manager Pro, allows you to select and copy a folder (via FTP), but you would need to select each subfolder individually, which if you have a lot would be time-consuming (I think that if you select '2013' it would ignore the folders beneath it).

  • How do i get my events to change colors when i add new ones in my calendar

    How do I get my events to change colors when I add a new event in my calendar?

    When you add an event and you see the heading "Calendar", do you see a name to the right of it such as "Work"?  If you tap on the heading "Calendar" does it show you a list of calendars?
    I'm basing this on my experience using iCal on a Mac to sync with my iPad.  I created a number of calendars on the Mac and assigned them different colors.  Those appear on my iPad.  I don't know how to create additional calendars on the iPad alone - I must create them in iCal or MobileMe then they show up on the iPad.  Are you using a Mac or MobileMe?

  • When adding a yahoo email account I keep getting "Server Unavailable" notification.  This started after I updated my software.  I deleted my accounts and tried to re-add them but continue to get this notification??

    When adding a yahoo email account I keep getting "Server Unavailable" notification.  This started after I updated my software.  I deleted my accounts and tried to re-add them but continue to get this notification??

    hello, this is a scam tactic that is trying to trick you into installing malware, so don't download or execute this kind of stuff! as you've rightly mentioned, you're already using the latest version of firefox installed and you can always initiate a check for ''updates in firefox > help > about firefox''.
    you might also want to run a full scan of your system with the security software already in place and different tools like the [http://www.malwarebytes.org/products/malwarebytes_free free version of malwarebytes], [http://www.bleepingcomputer.com/download/adwcleaner/ adwcleaner] & [http://www.kaspersky.com/security-scan kaspersky security scan] in order to make sure that there isn't already some sort of malware active on your system that triggers these false alerts.
    [[Troubleshoot Firefox issues caused by malware]]

  • Issue in getting exception pointer in VC++ CLR project for generating dump file.

    Hi,
    We are working on VC++ CLR (Windows Forms) application.
    We are writing a code to generate Mini dump file (using MINIDUMPWRITEDUMP in dbghelp.dll) whenever application crashes.
    The code available on internet for writing mini dump file in c# generates the mini dump but without Exception code and information, because _EXCEPTION_INFORMATION was set using Marshal::GetExceptionPointers() which returns 0. We called MINIDUMPWRITEDUMP
    inside AppDomain::UnhandledExceptionEventHandler for this.
    To get the valid exception pointer for mini dump we made following attempts with and without AppDomain::UnhandledExceptionEventHandler  –
    Used mixed (managed and unmanaged ) dll to add SetUnhandledExceptionFilter.  Inside top level exception filter function added code to write mini dump.  Inside main the handler is set on 1<sup>st</sup> line. But handler is not invoked
    on any exception. This works fine with console C# project.
    // inside dll
    #pragma unmanaged
    LONG WINAPI ABCExceptionFilter(__in struct _EXCEPTION_POINTERS *pExceptionInfo)
    { // code to write dump
    #pragma managed
    Namespacee SEHHandler {
    public ref class SEHExpHandler
    public:
    static void AddHandler()
    SetUnhandledExceptionFilter(ABCExceptionFilter);
    // inside app main()
    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    SEHHandler::SEHExpHandler::AddHandler();
    //some code . . .
    Application::Run(gcnew Form1());
    //some code . . .
    Used __try __except inside application main. The exception filter was written in other C++ dll and called inside __except ( expression ) using platform Invoke.  But this throws the caught exception while trying to call handler.
    // inside app class
    [DllImport("SEHhandler.dll")]
    extern int __stdcall se_handler(unsigned int code, IntPtr ep);
    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    __try
    { //some code. . .
    __except(se_handler(GetExceptionCode(),
    (IntPtr)GetExceptionInformation()))
    { //some code. . .
    // inside dll
    __declspec(dllexport)
    extern int WINAPI se_handler(unsigned int code,
    struct _EXCEPTION_POINTERS* ep)
    { // code to write minidump
    return EXCEPTION_EXECUTE_HANDLER;
    Can anyone help us to get either of the code work. The aim is to write dump file with correct stack trace where exception was thrown.
    Thanks in advance.
    -- Sumit

    Hi,
    Few days back we tried following sample program and we were able to get exception code and pointer for almost all types of exception catch inside __except statement. 
    1. Create sample VC++ > CLR > Windows form application.
    2. Change Common language Runtime support to (/clr).
    3. Set UnhandledExceptionMode to ThrowException in main.
    4. Inside application cpp file add __try __except around Application::Run(gcnew Form1()).
    5. Add new header file to write unmanaged function to be called inside __except statement to handle exception.
    6. Created new Form1 and add few buttons to test different types of exceptions.
    7. Exceptions will be catch in __except statement and exception pointers will be available to write mini dump.
    Inside application main function use __try, __except block.
    #include "stdafx.h"
    #include "Form1.h"
    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    Application::SetUnhandledExceptionMode(UnhandledExceptionMode::ThrowException);
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    __try{
    // Create the main window and run it
    Application::Run(gcnew Form1());
    }__except(exception_filter(GetExceptionCode(), GetExceptionInformation())){
    // write your code
    return 0;
    Add header file and write exception filter
    #pragma once
    #include <windows.h>
    #include <stdio.h>
    #include <string>
    using namespace std;
    #pragma comment(lib, "user32.lib")
    int exception_filter(unsigned int code, struct _EXCEPTION_POINTERS* ep)
    TCHAR buff[100];
    wsprintf(buff, L"Inside exception_filter. Excp Pointer %p", (void*)ep);
    ::MessageBox(NULL,buff,L"Error",MB_OK);
    // add code to write mini dump using MINIDUMPWRITEDUMP
    return EXCEPTION_EXECUTE_HANDLER;
    Thanks.

  • Add-on 9000035 failed with exception; Event Type: 32

    In loadscreen function i have  load the XML form but it shows the error like
    "Add-on 9000035 failed with exception; Event Type: 32"
    But  i will connect to some other db means its working .
    Share your ideas for what is the problem to load the screen in particular DB
    Thanks,
    Helen. S

    Hi,
    You may check this: Add-on 9000002 failed with exception; Event Type: 32
    Thanks,
    Gordon

Maybe you are looking for