How to display in ASP.NET an error message caught in a catch block using the C# code-behind?

How to display in ASP.NET an error message caught in a catch block using the C# code-behind?
I would like to display the message in a something like MessageBox so that a user could close it.
I know that JavaScript alert( ) could be used to display client-side messages, but how to integrate the alert( ) into the C# code-behind?  And are there any other ways to do it?

Thanks for your help.
pavelmedAsked:
Who is Participating?
 
praneethaConnect With a Mentor Commented:
catch(Exception ex)
{
string strScript = "<script language=JavaScript>alert('" +
                       ex.Message + "')</script>";
     if (!(Page.IsStartupScriptRegistered(alertKey)))
     Page.RegisterStartupScript(alertKey, strScript);

}
0
 
praneethaCommented:
in your catch block....

catch(Exception ex)
{
string strScript = "<script language=JavaScript>alert('" +
                       ex.Message + "')</script>";
      if (!(senderPage.IsStartupScriptRegistered(alertKey)))
      senderPage.RegisterStartupScript(alertKey, strScript);

}
0
 
pavelmedAuthor Commented:
What is "alertKey" ?
Thanks
0
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

 
praneethaCommented:
it is any name...

you can say Page.RedisterStartupScript("alertkeyname_any string",strScript);
0
 
AerosSagaCommented:
I usually just create a label on the page, and set it to visible and then right the error message like so:

Try
            Me.lblAuthCode.Text = CStr(AuthNetTrans.AuthCode.ToString)
            Me.lblTransID.Text = CStr(AuthNetTrans.TransID.ToString)
        Catch ex As PaymentProcessing.AuthorizeNetException
            ''Double check this part
            Me.lblError.Text = "We are sorry there was an error of type" & ex.Message & " while processing your card."
            cmd.CommandType = CommandType.Text
            cmd.CommandText = "UPDATE ORDERS SET ResponseReasonText = " & ex.Message.ToString & " Where SessionID = '" & Me.lblTrackingID.Text.ToString & "'"
            cmd.Connection = cnn
            cnn.Open()
            cmd.ExecuteNonQuery()
            cnn.Close()
            cmd.Dispose()
            cmd.Dispose()
        End Try
0
 
pavelmedAuthor Commented:
What should be a namespace for the senderPage?
Thanks
0
 
AerosSagaCommented:
Catch e As Exception
            Try
                Trans.Rollback()
                cmd.CommandText = "UPDATE Orders SET Processed = 'False' WHERE OrderTrackingID = " & Me.lblOrderTrackingID.Text
                cmd.ExecuteNonQuery()
                Me.lblError.Text = e.Message.ToString
            Catch ex As ByteFX.Data.MySqlClient.MySqlException
                If Not Trans.Connection Is Nothing Then
                    Me.lblError.Text = ex.Message.ToString
                End If
            End Try
0
 
praneethaCommented:
0
 
praneethaCommented:
Dim strScript As String = "<script language=JavaScript>"
  strScript += "alert(""" & strMessage & """);"
  strScript += "</script>"

  If (Not Page.IsStartupScriptRegistered("clientScript")) Then
     Page.RegisterStartupScript("clientScript", strScript)
  End If
0
 
pavelmedAuthor Commented:
I have "using System.Web.UI;" in my C# code, but the compiler displays an error: "The type or namespace name 'senderPage' could not be found (are you missing a using directive or an assembly reference?"
Thanks
0
 
praneethaCommented:
no don't use sender page..just say Page.Register....
0
 
pavelmedAuthor Commented:
Thank you all.
I have accepted the answer from praneetha as it fits my goals the best.
0
 
praneethaCommented:
Thank you.

Good Luck
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.