• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 287
  • Last Modified:

help with exceptions

Hey experts,

I'm still trying to teach myself c# and web programming, and I'm stuck on trying to figure out how to get this exception to work.

I have a web form that allows the user to select an attachment to include with the email. I want to put a limit on the file size to 10mb. When the user has entered in the information and selected the attachment, the user then clicks on submit and the email is created and sent out. What I would like to do in theory is if the attachment is too large, notify the user before sending the email without the attachment so he or she can make arrangements to get the attachment to the person in a different way. What I have below doesn't work. I stepped through the code and it goes to the catch statement, but I guess I just don't understand how to use the response.write correctly, as it just continues on with the rest of the code with no message.

try
   {
   if (filename.PostedFile.ContentLength > 18000)
          throw new Exception();
   else
          mMessage.Attachments.Add(new MailAttachment(@filename.PostedFile.FileName));
   }
catch
   {
          Response.Write("test");
   }

Any help is appreciated. Thanks


Bryan
0
bng0005
Asked:
bng0005
  • 7
  • 5
1 Solution
 
Carl TawnSystems and Integration DeveloperCommented:
Have you let the page finish processing ? It may just be that the Response is being buffered so you won't see the output right away.
0
 
bng0005Author Commented:
Yes I have, never saw my "test" string anywhere. I'll post the rest of my code after that section, as the redirect might be a reason why it doesn't show. This is the code that immediately follows what I already posted, and the end of the function. Without debugging and adding a file that is too large, I click submit, it goes to the success page and the email is sent without the attachment

try
{
    SmtpMail.Send(mMessage);
}
catch
{
    Response.Write("There was an error sending the notification e-mail. Please contact the System Administrator.");
}

Session.Add("_rn", (counter=="" ? "#ERROR" : counter));
Response.Redirect("Success.aspx");  
0
 
Carl TawnSystems and Integration DeveloperCommented:
That'll be it then. Your page will redirect before you see the message. To verify, take out the redirect and see if you get the message as expected.
0
Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

 
bng0005Author Commented:
ahah, it shows up now.

Now if you don't mind me expanding on the question, is there an easy way to get the message to show up like a dialog box and continue with the redirect after user clicks ok?
0
 
Carl TawnSystems and Integration DeveloperCommented:
Do you want a javascript prompt or a HTML message in the page ?
0
 
bng0005Author Commented:
Hmm, probably the prompt
0
 
Carl TawnSystems and Integration DeveloperCommented:
Ok, just before the Redirect try adding:

    Response.Write("<script language=""javascript"">alert('Your message');</script>");
    Response.Flush();
0
 
Carl TawnSystems and Integration DeveloperCommented:
Scratch that, it won't work.
0
 
Carl TawnSystems and Integration DeveloperCommented:
Take out the Redirect then add this instead:

        Response.Write("<script language=\"javascript\">");
        Response.Write("alert('My Message');");
        Response.Write("document.location.href='success.aspx';");
        Response.Write("</script>");

This will show your message and then perform a client-side redirect instead.
0
 
bng0005Author Commented:
No luck.

HttpException

Cannot redirect after http headers have been sent.

0
 
Carl TawnSystems and Integration DeveloperCommented:
Thats why I said to scratch the first one. Try the second option.
0
 
bng0005Author Commented:
Second option worked perfectly, didn't see it until after I posted. Thanks for the help.


Bryan
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.

Join & Write a Comment

Featured Post

Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

  • 7
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now