When To Use The Try Catch Condition
Feb 23, 2010Do I have to use the 'Try Catch' condition or possibly find ways to catch the error myself? Do you use the Try Catch all the time, when, why not?
View 7 RepliesDo I have to use the 'Try Catch' condition or possibly find ways to catch the error myself? Do you use the Try Catch all the time, when, why not?
View 7 RepliesWhat is the purpose of adding a try catch condition that simply throws the Exception?
Sample Code (Note: The db object is proprietary code that simply uses ADO.Net):
[Code]....
Here is the code copied from [URL] In asp.net code behind, I use try-catch try to catch any error but never catch it. In SQL database, if I rename Employees to Employeesx or change column DepartmentID to DepartmentIDx, record will not be deleted (it is right) without any error (it is wrong, suppose catch an error).
CREATE PROCEDURE DeleteDepartment
(
@DepartmentID int
)
AS
BEGIN TRANSACTION
DELETE FROM Employees
WHERE DepartmentID = @DepartmentID
IF @@ERROR <> 0
BEGIN
ROLLBACK
RAISERROR ('Error', 16, 1)
RETURN
END
DELETE FROM Departments
WHERE DepartmentID = @DepartmentID
IF @@ERROR <> 0
BEGIN
ROLLBACK
RAISERROR ('Error', 16, 1)
RETURN
END
OMMIT
I get this error in the browser:
Code:
Thread was being aborted.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Threading.ThreadAbortException: Thread was being aborted.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ThreadAbortException: Thread was being aborted.]
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +486
System.Web.ApplicationStepManager.ResumeSteps(Exception error) +501
System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +123
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +379
Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053
I have try{}catch(Exception ex){} in the right place:
Code:
protected void Button1_Click(object sender, EventArgs e)
{
try
{
// all processing occurs inside here
}
catch(Exception ex)
{
}
}
I even created a global.asax file and on the Application_Error event, I wrote a code that would email me the error (and i'm not getting an email regarding that error when I get the error shown above). I know for a fact that the thread is going inside the "try" statement because I send emails to myself whenever it finishes certain codes inside of it. So how come I'm getting that error in my browser instead of it being handled in my "catch" statement? I have two problems here, one, why is the exception not going to my "catch" statement, and two, why am I getting that error in the first place.
Note: my web app calls a webservice.
Here i have small doubt,how can i use try and catch.Please give me brief idea.hen ever an error is raised in try block,how to handle it in catch.is it enough to give message for user or shall i handle there it self?
View 7 Repliesi am having a listbox which contains some entities which i need to select in order to make the submit button work successfully but when no entity is selected it should give an error
protected void SubmitBtn_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
on.ConnectionString = ConfigurationManager.ConnectionStrings["cn"].ConnectionString;
[code]...
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
What is the significance of pathInfo?
In my SP (Sql Server 2005) I'm raising an error usingRaiserror ('No Records Fetched' , 16 ,1)I want to catch this particular error in ASP.NET.. how do I do it ?
View 2 RepliesI am creating asp.net web apps in .net 3.5 and I wanted to know when to use and when not to use Try Catch Finally blocks? In particular, a majority of my try catch's are wrapped around executing stored procs and populating textfields or gridviews? Would you use Try Catch EVERYTIME when you execute a stored proc and populated a data display control?
My code block usually looks like:
protected void AddNewRecord()
{
try
{[code].....
I have a property call (add user to a group) that would be hard to write code to check if user is already in group and I need to call it multiple times sometimes for the same group. anyhow it throws an error if user is already in group. easy way if to just put in a try catch and do nothing for the catch. it works fine except there are several errors in the application event log for this error when it happens. I would rather it not to log this error as it takes up time when looking in the event log to say - this is not a valid error log. so is there a way to tell a try catch to not log in the event log an error it is catching? I would rather not change any settings for the whole site but perhaps just this 1 page might be acceptable.
View 2 RepliesRemoteOnly" defaultRedirect="~/Errors.aspx">
<error statusCode="404" redirect="~/Error.aspx?code=404"/>
</customErrors>
hrow new HttpException(404, "404 Not Found");
if i have focus on textbox and i press enter or Esc how to catch this event?
View 1 RepliesI have this piece of code to handle the HttpRequestValidationException in my global.asax.cs file.protected void Application_Error(object sender, EventArgs e)
[code]...
I have a event ServerStateReceived here checking condition of 4 servers whether they are UP or Down is going on.Here if flag ReadySent = true and 4 servers DOWN(Both are rare condition in a typical scenario) there will be a logic so that cotrol will go to the calling function only after all servers became UP here is bit of code
[Code]....
iam inserting record in three tables in a database, iam using begin trans , commit transaction and rollback,
i want to use throw method, if any value insert wrong, pls correct me, i want to throw the error and
its go to rollback
running = false;
int updaterec = DBmgr.ExecuteNonQuery(CommandType.Text, "update ASArrivedcontainer set billgen ='Y' where billgen ='y' and acontinerid in ("+SelValues+")");
if (updaterec > 0)
{
running = true;
DataSet BillContainerDetails = BillingDetails();
byte[] ContainerDetails = GenerateBill(DBmgr, sContainerIds, rcno,isGeneralRCNo, FetchContainerDetails, ModifyId,ref BillContainerDetails);
DBmgr.CreateParameters(6);
//string otherchargesId = obj.retriveSingleRecord("select top(1) ModifyId from ASOtherCharges");
DBmgr.AddParameters(0, "@InvoiceNo", "1","IN");
DBmgr.AddParameters(1, "@BillDate", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss tt"), "IN");
DBmgr.AddParameters(2, "@CustomerId", "1", "IN");
DBmgr.AddParameters(3, "@TotalAmount", "10000", "IN");
DBmgr.AddParameters(4, "@OtherChargesId", ModifyId, "IN");
DBmgr.AddParameters(5, "@ContainerDetails", ContainerDetails, "IN");
String BillNo = DBmgr.ExecuteScalar (CommandType.Text, "Insert into BillMaster(InvoiveNo,BillDate,CustomerId,TotalAmount,OtherChargesId,ContainerDetails) values (@InvoiceNo,@BillDate,@CustomerId,@TotalAmount,@OtherChargesId,@ContainerDetails)
Select @@Identity ").ToString();
if (!String.IsNullOrEmpty(BillNo))
{
running = true;
DBmgr.CreateParameters(4);
for (int i = 0; i < BillContainerDetails.Tables[0].Rows.Count; i++)
{
BillContainerDetails.Tables[0].Rows[i]["BillNo"] = BillNo;
DBmgr.AddParameters(0, "@Billno", BillContainerDetails.Tables[0].Rows[i].ItemArray[1].ToString(), "IN");
DBmgr.AddParameters(1, "@rcno", BillContainerDetails.Tables[0].Rows[i].ItemArray[2].ToString(), "IN");
DBmgr.AddParameters(2, "@acontinerid", BillContainerDetails.Tables[0].Rows[i].ItemArray[3].ToString(), "IN");
DBmgr.AddParameters(3, "@bflag", BillContainerDetails.Tables[0].Rows[i].ItemArray[4].ToString(), "IN");
//string value = BillContainerDetails.Tables[0].Rows[i].ItemArray[0].ToString(); ;
// string strsql = "insert into billcontinerdetail(billno,rcno,acontinerid,bflag) values(@billno,@rcno,@acontinerid,@bflag)";
String count = DBmgr.ExecuteScalar(CommandType.Text, "insert into billcontinerdetail(billno,rcno,acontinerid,bflag) values(@billno,@rcno,@acontinerid,@bflag)Select @@Identity").ToString();
if (count > 1)
{
running = true;
}
else
{
}
//running = true ;
//break;
}
DBmgr.CreateParameters(6);
for (int j = 0; j < BillContainerDetails.Tables[1].Rows.Count; j++)
{
DBmgr.AddParameters(0, "@billcontkey", BillContainerDetails.Tables[1].Rows[j].ItemArray[1].ToString(), "IN");
DBmgr.AddParameters(1, "@ratetypcode", BillContainerDetails.Tables[1].Rows[j].ItemArray[2].ToString(), "IN");
DBmgr.AddParameters(2, "@days", BillContainerDetails.Tables[1].Rows[j].ItemArray[3].ToString(), "IN");
DBmgr.AddParameters(3, "@amount", BillContainerDetails.Tables[1].Rows[j].ItemArray[4].ToString(), "IN");
DBmgr.AddParameters(4, "@level", BillContainerDetails.Tables[1].Rows[j].ItemArray[5].ToString(), "IN");
DBmgr.AddParameters(5, "@sflag", BillContainerDetails.Tables[1].Rows[j].ItemArray[6].ToString(), "IN");
// string strsql = "insert into billratedetail(billcontkey,ratetypcode,days,amount,level,sflag)values(@billcontkey,@ratetypcode,@days,@amount,@level,@sflag)";
String count = DBmgr.ExecuteScalar(CommandType.Text, "insert into billratedetail(billcontkey,ratetypcode,days,amount,level,sflag)values(@billcontkey,@ratetypcode,@days,@amount,@level,@sflag)Select @@identity ").ToString()
;
I was wondering if it would be possible to do something like this.
[Code]....
i am almost finished up with a website and i have used this try catch block only in few places. now what i want is that i want to catch all the exception so that i can report the same through mail.. is it possible in any way to catch all the exception in one place and mail it cause now writing this block everywhere will be a kind of tedious process?
View 4 RepliesWhat i would like to do is catch any exception that hasn't been handled in the web application then send the user to a screen saying something like
"Were sorry this has crashed"
And at the same time send the exception to our ticketing systems.
I am assuming I need to put it in the the global.cs somewhere just not sure where?
If I am just logging exception details in my web app, do I really need to put in exception handling logic for each tier? Why not just let them all bubble up the stack trace to the global.asax and log them there?
View 5 RepliesI'm trying to use the Global.asax file in the root application of the website to catch requests for pdf files in the root that don't exist any more. I've configured iis to send pdf requests to asp.net. The whole thing works perfectly on development. It also works on the live system with missing .aspx pages, but not .pdf. Instead an "Error Code 64: Host not available". I'm using the Global.asax file to avoid the web.config and child applications (1.1 & 2.0) inheriting settings.
Edit:
I configured IIS to send .pdf requests to asp.net using the Application Configuration dialog on the mappings tab and adding .pdf extension mapped to the aspnet_isapi.dll. "Verify that file exists" is turned off (although I've also tried it turned on).
I'm loading pdf's into an iframe on my web page by setting the src of the iframe to the path of the pdf document. This works as I'd like for viewing the pdf.
The problem is that some of the pdf's have hyperlinks in them to external websites which, when clicked, load the external website in my iframe.
So my question is: is it possible to catch the pdf's hyperlink click in javascript in the parent browser window, set the target to either top or blank and then redirect the request?
Unfortunately the pdf's are supplied by a third party so I don't have access to change the documents themselves.
I have tried this on two different controller methods now, and both times, even if the linq2sql doesn't allow the data to be saved, the code never jumps into the catch block.
I've watched the noun object in the middle of the trace, and the isvalid property is false, but the modelstate isvalid is true. Either way, the code never jumps into the catch block.I'm pulling my hair out about this. I feel like it will be something really silly.
The code all works similar to nerd dinner.
NounRepository nounRepository = new NounRepository();
Noun noun = new Noun();
try[code]...
I'd rather not have to add code in this manner though, as it seems like an unnecessary duplication.
I have to call the function, when exception occured. Is it possible to call the function in Catch block (Try-Catch)? I have tried it but the function did not get invoked. What i have to do for it? Shall we unable to call the functions in Catch block? I have shown my code below.
Try
Catch ex As Exception
ErrorHandlers.LogErrorDetails(ex, Session("UserId").ToString, "")
Throw ex
End Try.
I knew, We can invoke this function in Finally block but i do not need as per my requirements.
In Asp.net (c#),i'm not able to catch exception(FileNotFoundException) properly... i don't know the reason..Actually File s not there..But catch statement fails to catch the exception..here is the code..
try
{
System.Drawing.Image imgg1 = System.Drawing.Image.FromFile(Server.MapPath("").ToString() + "\images\img1.jpg");
} [code]...
How do I catch all links and button pressed? Without having to add my JavaScript method to every link and button? Anytime my browser wanrs to redirect to page1.aspx stop it from redirecting and have mt browser click a link found on the page to page2.aspx
View 4 Replies