Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / General / November 2004

Tip: Looking for answers? Try searching our database.

Problem with Exception management block

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
P?ll ?lafsson - 02 Nov 2004 12:12 GMT
Hi

I have a problem with the Microsoft.ApplicationBlocks.ExceptionManagement? I
can't get it to work in RELEASE mode?  If I run the project in debug mode
the block works fine but when I run the exe file it doesn't catch any
errors?

Does anyone know what my problem might be?

Regards
Palli
David Levine - 02 Nov 2004 12:19 GMT
Can you provide a short sample which demonstrates the problem? I've not had
any problems with it myself.

> Hi
>
[quoted text clipped - 8 lines]
> Regards
> Palli
P?ll ?lafsson - 02 Nov 2004 12:46 GMT
no problem....

I have 2 project, one that is the main project and one database project.
In the main project I have a class that impliments the IExceptionPublisher
and there I the write the Publish function? The main project ref. the
database project.

My problem is when an error is thrown in database project, the exception
class, in main project, doesn't catch the error?  Works in debug mode but
not in release mode???

Exemple:
       public void MyFunction()
       {
           MyDataAdapter.Update(MyDataSet.MyDataTable);   -- thows an error
           MyDataSet.MyDataTable.AcceptChanges();
       }
When I try to run this function in the database project, an error is thrown
because I cant insert a NULL in one field.

What I dont understand is why its works fine in Debug but not in Release??
Do I have to change some settings?

Please let me know if you need more information

Very best regards
Palli

> Can you provide a short sample which demonstrates the problem? I've not had
> any problems with it myself.
[quoted text clipped - 11 lines]
> > Regards
> > Palli
David Levine - 03 Nov 2004 01:36 GMT
Where are you catching the exception? Where are you writing to the
management block? These two lines of code don't show me anything that I can
evaluate.

> no problem....
>
[quoted text clipped - 44 lines]
>> > Regards
>> > Palli
P?ll ?lafsson - 03 Nov 2004 11:03 GMT
Hi David...

Here is a detailed description of my projects...

In Main project I have a class that impliments  BaseApplicationException

[Serializable]
public class CKException  :  BaseApplicationException
{
 public CKException(string p_sVillubod, Exception p_exVilla,string
p_sUtgafunumer, int p_nVerklidurNumer,string p_sStarfsmadurNumer, string
p_sStarfsmadurNafn) : base(p_sVillubod, p_exVilla)
 {
      System.Reflection.PropertyInfo pi =
p_exVilla.GetType().GetProperty("Numfber");
  }

 // protected constructor to de-seralize state data
 protected CKerfisvillaException(SerializationInfo info, StreamingContext
context) : base (info, context)
 {
   // Initialize state
   //some code
 }

 // override GetObjectData to serialize state data
 [SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]
 public override void GetObjectData(SerializationInfo info,
StreamingContext context)
 {
   // Serialize this class' state and then call the base class
GetObjectData
   ...some code
   base.GetObjectData(info, context);
  }
 }
}

also I have a class in this project that impliments IExceptionPublisher

public class CDSPublisher : IExceptionPublisher
{
   void IExceptionPublisher.Publish(Exception exception,
NameValueCollection additionalInfo, NameValueCollectionconfigSettings)
   {...}
}

Third Exception klass is called CVilla and it handles calls to function in
the CKException and CDSPublisher

public sealed class CVilla
{
   // init some variables...
 private CVilla() {}

 private static void writeException(string p_sException,Exception
p_exException)
 {
   ...
  CKException exK = new CKException(...);
  ExceptionManager.Publish(exKerfisvilla);
 }
...
}

All the forms in the main project inherit a class that handles any exception
handling and if an exception is thrown, then
the parent class handles the exception.  The forms call a function in the DB
project but if an exeption is thrown in that project, the
exception is not catched in the Main project? CVilla class is never ref. in
the db project and there is no exception handling there!
I can use Reflection to use the CVilla class but it must be another smarter
way to handle exception in large solutions.  I want to be able
to catch all errors in one place.

here is the app.config ..

<configuration>
<configSections>
 <section name="exceptionManagement"
type="Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManagerSectio
nHandler,Microsoft.ApplicationBlocks.ExceptionManagement" />
</configSections>

<exceptionManagement mode="on">

 <publisher mode="on" assembly="kerfi" type="kerfi.CDSPublisher" />
</exceptionManagement>

</configuration>

Hope this is what you are looking for....

> Where are you catching the exception? Where are you writing to the
> management block? These two lines of code don't show me anything that I can
[quoted text clipped - 48 lines]
> >> > Regards
> >> > Palli
David Levine - 03 Nov 2004 12:32 GMT
This shows me the class structure, which appears ok. It does not show where
the code has implemented its try-catch clauses. Some things to check are:
are all threads of execution wrapped in a try-catch? Have you tried
subscribing to the UnhandledException handler as a backstop? Are all
assemblies in the release build installed the same way they are in the debug
build? Is there any code that is compiled out in the Release build? Does the
exception management block have sufficient privileges to publish when
running in the release build?

Also, when you say the parent class handles the exception, what does this
mean?

As an example of what I am referring to, for any thread of execution you
should have something like this..(forgive me if this is too obvious)

void SomeMethod(object state)
{
try
{
}
catch(Exception ex)
{
 ExceptionManager.Publish(ex);
}
}

> Hi David...
>
[quoted text clipped - 154 lines]
>> >> > Regards
>> >> > Palli
P?ll ?lafsson - 03 Nov 2004 12:56 GMT
Hi

First of all I want to thank you for your patient...

What I ment with the parent is every form inherit a special form that has a
function that opens the form and inside that function is the try, catch

public virtual void OpenForm()
{
   try
   {
         ... code that opens and init. the form
   }
   catch (Exception e)
  {
   CVilla.writeException(e);
   }
}

I will take a look at you hints and try to resolve the problem that way...
Thanks for all you info and once again you patiant?
Regards
Palli

> This shows me the class structure, which appears ok. It does not show where
> the code has implemented its try-catch clauses. Some things to check are:
[quoted text clipped - 107 lines]
> > <configSections>
> >  <section name="exceptionManagement"

type="Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManagerSectio
> > nHandler,Microsoft.ApplicationBlocks.ExceptionManagement" />
> > </configSections>
[quoted text clipped - 68 lines]
> >> >> > Regards
> >> >> > Palli

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.