Hi,
Is there any overhead attached with the try catch block? In C# everything is
an exception. So is it OK to have a try catch block for each function ??? or
is there any other way. What is the correct /efficient programming
practise??
Is there any other article available on the same?
Thanks for your time.
Regards,
Gobi. 13 4530
On 6 Dez., 07:28, "Gobinath" <gobinat...@coo lgoose.comwrote :
Hi,
Is there any overhead attached with the try catch block? In C# everything is
an exception. So is it OK to have a try catch block for each function ??? or
is there any other way. What is the correct /efficient programming
practise??
Is there any other article available on the same?
Thanks for your time.
Regards,
Gobi.
As long as there is no actual exception, the overhead is very small.
However, wrapping every single function into a try/catch block would
be somewhat unorthodox. Normally you let exceptions "bubble up" to a
global error handler on the top level and let that handle the error-
logging and display error information.
The obvious exception from this is when you anticipate a certain
exception and are able to recover from it, then you would wrap the
smallest possible piece of code in the try catch and only catch the
exceptions that you know you can recover from.
If you want more information on exceptions you should check out Jon
Skeet's homepage, he has a great collection of really useful articles
on many c# topics: http://www.yoda.arachsys.com/csharp/exceptions2.html
hth,
Kevin Wienhold
From: KWienhold [mailto:he****** @trashmail.net]
Posted At: Thursday, 6 December 2007 3:47 PM
Posted To: microsoft.publi c.dotnet.langua ges.csharp
Conversation: try catch overhead.
Subject: Re: try catch overhead.
*snip*
As long as there is no actual exception, the overhead is very small.
However, wrapping every single function into a try/catch block would
be somewhat unorthodox. Normally you let exceptions "bubble up" to a
global error handler on the top level and let that handle the error-
logging and display error information.
*snip*
Hey KWien,
You mentioned error-logging be the global error handler. All I had
observed so far was the visible dialogue that comes up and "annoys" the
customer, who then proceeds to close it before calling to say something
was wrong.
Where would I find the error-log information? Event Viewer? A local
file? Within the Windows directory somewhere?
This would be very beneficial to know for debugging at the clients site
once they have closed the Exception screen and can't reproduce the
error.
Regards,
Wingot
Gobinath... Well, not _everything_ is an exception as C# does support
the Try,
out pattern as in Double.TryParse :)
Regards,
Jeff
*** Sent via Developersdex http://www.developersdex.com ***
On Wed, 05 Dec 2007 23:02:51 -0800, Wingot <wi****@newsgro up.nospamwrote:
Hey KWien,
You mentioned error-logging be the global error handler. All I had
observed so far was the visible dialogue that comes up and "annoys" the
customer, who then proceeds to close it before calling to say something
was wrong.
Where would I find the error-log information? Event Viewer? A local
file? Within the Windows directory somewhere?
I believe Kevin is referring to whatever custom error logging an
application might provide. His point is that you would only handle an
exception at a point in the code where you can do something useful about
it. If that "something" includes logging the exception, it would be
wherever the application designer decided to put it. The event log would
be a natural location, but it could be a local file or even transmitted to
a server somewhere.
For some exceptions, this handling may well be near the top level of your
code and it may be that the only useful thing to do is present the error
to the user (for example, by displaying an informational message, along
with the Exception.Messa ge property value, in a MessageBox.Show ()
statement), and/or logging the error somewhere as the developer sees fit,
and then just continuing to allow the user to use the application normally.
For other exceptions, it might be there's a sensible way to handle the
error at a deeper level in the code. For example, some sort of data entry
or i/o where the input data is invalid but some default can be provided
instead in the event of an exception. Again, the user may or may not be
alerted, the exception may or may not be logged, but any of that would be
up to the person writing the code.
As far as I know, there is no automated exception logging facility that
handles this sort of thing. It would be something implemented by the
developer of the program.
Pete
Peter Duniho wrote:
As far as I know, there is no automated exception logging facility that
handles this sort of thing. It would be something implemented by the
developer of the program.
Pete
As you say there are lots of ways of doing this, I recently saw the
following on a code snippets site :
// Put this at the top
using System.IO;
//
public static void Log(string Message)
{
File.AppendAllT ext(HttpContext .Current.Server .MapPath("~") +
"/log.txt", DateTime.Now.To ShortDateString () + " " +
DateTime.Now.To ShortTimeString () + ": " + Message + Environment.New Line);
}
It impressed me due to the fact that its basically just one line (ok the
example above is meant for asp) I have used this in a c# class
library like so...
catch (Exception e)
{
File.AppendAllT ext(@"c:\log.tx t", e.Message);
}
for a production system you may want to do a bit more but the above is
great for capturing exceptions whilst developing without crashing the app.
The code was taken from http://snippets.dzone.com/posts/show/4334
--
Eps
On 6 Dez., 08:02, "Wingot" <win...@newsgro up.nospamwrote:
From: KWienhold [mailto:hedov... @trashmail.net]
Posted At: Thursday, 6 December 2007 3:47 PM
Posted To: microsoft.publi c.dotnet.langua ges.csharp
Conversation: try catch overhead.
Subject: Re: try catch overhead.
*snip*
As long as there is no actual exception, the overhead is very small.
However, wrapping every single function into a try/catch block would
be somewhat unorthodox. Normally you let exceptions "bubble up" to a
global error handler on the top level and let that handle the error-
logging and display error information.
*snip*
Hey KWien,
You mentioned error-logging be the global error handler. All I had
observed so far was the visible dialogue that comes up and "annoys" the
customer, who then proceeds to close it before calling to say something
was wrong.
Where would I find the error-log information? Event Viewer? A local
file? Within the Windows directory somewhere?
This would be very beneficial to know for debugging at the clients site
once they have closed the Exception screen and can't reproduce the
error.
Regards,
Wingot
As Peter already mentioned, logging is normally implemented by the
developer, so it could be stored in many different locations.
Unfortunately many applications actually don't log their errors, but I
figured we were talking about applications that we wrote ourselves, so
its totally up to you.
Logging can be extremely useful for debugging purposes, as you pointed
out, since users are prone to just clicking "OK".
Another benefit is that you don't actually have to display the stack-
trace to the user (like MessageBox.Show ("{0}", ex) would do), but you
can just dump it into a file and still have it available.
You may not think something like that is important, but after
explaining to a rather important customer what the method
"SpeedyGonzales .GoGoGo()" was (yeah, I have some great colleagues), I
really appreciate it ;)
On a sidenote, if you want to implement global error handling for
logging purposes you may want to take a look at the
AppDomain.Curre ntDomain.Unhand ledException
System.Windows. Forms.Applicati on.ThreadExcept ion
events.
Kevin Wienhold
Gobinath,
As there are *To much* Try and Catch blocks used in a class, then it is for
me a sign that it is done by a beginner who did not understand why something
did not work, and fixed that with a Try and Catch to set some mostly wrong
values as result.
Just my idea about this.
Cor
Thanks a lot for all your response.. I think I have a better feeling for it
now..
Thanks a lot for your time.
Regards,
Gobi.
"Cor Ligthert[MVP]" <no************ @planet.nlwrote in message
news:1B******** *************** ***********@mic rosoft.com...
Gobinath,
As there are *To much* Try and Catch blocks used in a class, then it is
for me a sign that it is done by a beginner who did not understand why
something did not work, and fixed that with a Try and Catch to set some
mostly wrong values as result.
Just my idea about this.
Cor
KWienhold wrote:
As long as there is no actual exception, the overhead is very small.
However, wrapping every single function into a try/catch block would
be somewhat unorthodox. Normally you let exceptions "bubble up" to a
global error handler on the top level and let that handle the error-
logging and display error information.
I don't agree with that for a large application.
I a large real world app then log+display+exi t is likely not
good enough.
And in a multi layered component based world then the top level
is very unlikely to be able to do anything, because what has to be
done in case of an exception is also encapsulated somewhere.
Arne This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Chris Martin |
last post by:
Below are three try-catch blocks. My question is, how can all three work,
and how come there is no memory leak (or is there)? As I understand it, an
exception object is being created and "thrown" back to the calling function.
If you treat this object as a reference or copy it, how does it get cleaned
up?
/* code segment 1 */
try {
m_pCommand->Execute(NULL, NULL, adCmdText | adExecuteNoRecords);
}
|
by: Pohihihi |
last post by:
I was wondering what is the ill effect of using try catch in the code, both
nested and simple big one.
e.g.
try
{
\\ whole app code goes here
} catch (Exception ee) {}
|
by: STom |
last post by:
I heard someone mention to me that the use of try catch exception handling
is very expensive (in relative terms of slowing an app down) if it is used
frequently. Of course they could not explain why.
Is this true? If so, why?
Thanks.
STom
|
by: Bob Achgill |
last post by:
I really like this function but have tried to slow down
on using it because I get a 1 second pause each time I
use it. I don't really understand why the computer has
to think for 1 second! Especially at 2.8 GZ and 1GB RAM.
The same pause happens on different situations: database
access Trys, Array access Trys. Hummm??
|
by: ari |
last post by:
hey all,
i know i need a try catch in my method but do i put all the contents of my
method withing the try catch or should I just put some of the code?
thanks,
ari
| |
by: Back 9 |
last post by:
I try to insert try/catch statement in every single method of my c# code
to prevent the app from crashing not nicely.
Do you think it is good idea?
I remember that an artical says " do not overuse try/catch " but I don't
remember the reason why I should overuser.
I don't see the reason I should not overuse them.
What's your opinion on it?
Thx
|
by: pigeonrandle |
last post by:
Hi,
Does this bit of code represent complete overkill?!
try
{
//create a treenode
TreeNode tn = new TreeNode();
//add it to a treeview
tv.Nodes.Add(tn);
|
by: =?Utf-8?B?TWlrZQ==?= |
last post by:
Hi. I have a class with an collection property. The collection property is
sometimes equal to nothing. The class has a function named 'Exists' which
returns TRUE if the specified string exists in the collection, and FALSE if
it does not. This is illustrated below.
My co-worker and I are having a friendly disagreement as to whether or not
we should rely on an exception to return a result. My coworker's version of
the function and...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |