Solved

Try-Catch Solution/ Debug Mini Calculator

Posted on 2004-04-23
11
338 Views
Last Modified: 2008-02-01
I have an application that is set up like a Mini calculator with Input Box 1 and Input Box 2 and oupt Put box for the answers. It contains radio button of Addition, subtraction, multiplication and division. The Variables FirstNum and SeconNum are declared as short and must remain as such.  (FistNum = TextBox1.Text and SecondNum = TextBox2.Text)

I have overflow and exception errors also division by zero errors. How do I write the Try...Catch statements to handle these errors and wher do they go in VB.Net
0
Comment
Question by:bobtman
11 Comments
 
LVL 3

Expert Comment

by:diegojserrano
Comment Utility
you should enclose the sentence that is originating the error with try and catch
I assume that those are in the click event of the button used to do the actual calculation.
can you post that code (the click event of the button)?
0
 
LVL 22

Expert Comment

by:cookre
Comment Utility
try {
     do the calculation
     }
catch (Exception e)
         {
         // presumably you'll issue a message based upon which exception you got, then set the focus off somewhere and
         // exit this routine so you don't fall through to the good code below
         }
// Code to run if the calculation was good
0
 
LVL 1

Accepted Solution

by:
games0802 earned 500 total points
Comment Utility
In VB.NET, I believe what you need is simply the keywords Try and Catch.

Example:


Try
'insert code that generates errors here
Catch e as Exception  'generally this would be more specific
Console.WriteLine("Error: " & e.Message)  'here is where you decide what to do with the error
0
 
LVL 2

Expert Comment

by:mahanatti
Comment Utility
Hi,

Put your code within the try cath block as shown below:

    Dim FirstNum As Short
    Dim SecondNum As Short

    Try

      FirstNum = TextBox1.Text
      SecondNum = TextBox2.Text

      TextBox3.Text = FirstNum + SecondNum

    Catch ex As Exception
      MessageBox.Show(ex.Message)
    End Try

-Maha
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 1

Expert Comment

by:edkaas
Comment Utility
Hi,
I would use functions depending on what option button you choose use that function:


TextBox3.Text = AddNumbers(TextBox1.Text, TextBox2.Text)
TextBox3.Text = DivideNumbers(TextBox1.Text, TextBox2.Text)
      

Private Function AddNumbers(ByVal Number1 As String, ByVal Number2 As String) As String
      Try
          AddNumbers = (CShort(Number1) + CShort(Number2)).ToString()
      Catch ex As Exception
          Return ex.Message.ToString()
      End Try
Return AddNumbers
End Function

Private Function DivideNumbers(ByVal Number1 As String, ByVal Number2 As String) As String
      Try
          DivideNumbers = (CShort(Number1) / CShort(Number2)).ToString()
      Catch ex As Exception
          Return ex.Message.ToString()
      End Try
      Return DivideNumbers
End Function

Take Care,

Ed
0
 

Expert Comment

by:Potchitka
Comment Utility
I have a question. Having tried multiple samples of code from this site, I found that with my existing code, none of this seems to work. I am still filling in different parts of my program, but the parts that appear complete, don't work at all. If nothing else, I would really like to get the addition part right. HELP!

This is my code:

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
    Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
    Friend WithEvents RadioButton1 As System.Windows.Forms.RadioButton
    Friend WithEvents RadioButton2 As System.Windows.Forms.RadioButton
    Friend WithEvents RadioButton3 As System.Windows.Forms.RadioButton
    Friend WithEvents RadioButton4 As System.Windows.Forms.RadioButton
    Friend WithEvents Label3 As System.Windows.Forms.Label
    Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents Button2 As System.Windows.Forms.Button

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.Container

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Label1 = New System.Windows.Forms.Label
        Me.Label2 = New System.Windows.Forms.Label
        Me.Label3 = New System.Windows.Forms.Label
        Me.RadioButton4 = New System.Windows.Forms.RadioButton
        Me.RadioButton1 = New System.Windows.Forms.RadioButton
        Me.RadioButton3 = New System.Windows.Forms.RadioButton
        Me.RadioButton2 = New System.Windows.Forms.RadioButton
        Me.Button1 = New System.Windows.Forms.Button
        Me.Button2 = New System.Windows.Forms.Button
        Me.GroupBox1 = New System.Windows.Forms.GroupBox
        Me.TextBox2 = New System.Windows.Forms.TextBox
        Me.TextBox3 = New System.Windows.Forms.TextBox
        Me.TextBox1 = New System.Windows.Forms.TextBox
        Me.GroupBox1.SuspendLayout()
        Me.SuspendLayout()
        '
        'Label1
        '
        Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label1.Location = New System.Drawing.Point(16, 16)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(88, 16)
        Me.Label1.TabIndex = 0
        Me.Label1.Text = "Variable 1"
        '
        'Label2
        '
        Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label2.Location = New System.Drawing.Point(16, 72)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(88, 16)
        Me.Label2.TabIndex = 2
        Me.Label2.Text = "Variable 2"
        '
        'Label3
        '
        Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label3.Location = New System.Drawing.Point(264, 16)
        Me.Label3.Name = "Label3"
        Me.Label3.Size = New System.Drawing.Size(96, 16)
        Me.Label3.TabIndex = 5
        Me.Label3.Text = "Result"
        '
        'RadioButton4
        '
        Me.RadioButton4.Location = New System.Drawing.Point(8, 72)
        Me.RadioButton4.Name = "RadioButton4"
        Me.RadioButton4.Size = New System.Drawing.Size(88, 16)
        Me.RadioButton4.TabIndex = 3
        Me.RadioButton4.Text = "Division (/)"
        '
        'RadioButton1
        '
        Me.RadioButton1.Location = New System.Drawing.Point(8, 24)
        Me.RadioButton1.Name = "RadioButton1"
        Me.RadioButton1.Size = New System.Drawing.Size(96, 16)
        Me.RadioButton1.TabIndex = 0
        Me.RadioButton1.Text = "Addition (+)"
        '
        'RadioButton3
        '
        Me.RadioButton3.Location = New System.Drawing.Point(8, 56)
        Me.RadioButton3.Name = "RadioButton3"
        Me.RadioButton3.Size = New System.Drawing.Size(104, 16)
        Me.RadioButton3.TabIndex = 2
        Me.RadioButton3.Text = "Multiplication *)"
        '
        'RadioButton2
        '
        Me.RadioButton2.Location = New System.Drawing.Point(8, 40)
        Me.RadioButton2.Name = "RadioButton2"
        Me.RadioButton2.Size = New System.Drawing.Size(104, 16)
        Me.RadioButton2.TabIndex = 1
        Me.RadioButton2.Text = "Subtraction (-)"
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(280, 72)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(72, 24)
        Me.Button1.TabIndex = 7
        Me.Button1.Text = "Calculate"
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(280, 112)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(72, 24)
        Me.Button2.TabIndex = 8
        Me.Button2.Text = "Quit"
        '
        'GroupBox1
        '
        Me.GroupBox1.Controls.Add(Me.RadioButton4)
        Me.GroupBox1.Controls.Add(Me.RadioButton3)
        Me.GroupBox1.Controls.Add(Me.RadioButton2)
        Me.GroupBox1.Controls.Add(Me.RadioButton1)
        Me.GroupBox1.Location = New System.Drawing.Point(120, 24)
        Me.GroupBox1.Name = "GroupBox1"
        Me.GroupBox1.Size = New System.Drawing.Size(128, 104)
        Me.GroupBox1.TabIndex = 4
        Me.GroupBox1.TabStop = False
        Me.GroupBox1.Text = "Operator"
        '
        'TextBox2
        '
        Me.TextBox2.Location = New System.Drawing.Point(16, 88)
        Me.TextBox2.Name = "TextBox2"
        Me.TextBox2.Size = New System.Drawing.Size(88, 20)
        Me.TextBox2.TabIndex = 3
        Me.TextBox2.Text = ""
        '
        'TextBox3
        '
        Me.TextBox3.Location = New System.Drawing.Point(264, 32)
        Me.TextBox3.Name = "TextBox3"
        Me.TextBox3.Size = New System.Drawing.Size(112, 20)
        Me.TextBox3.TabIndex = 6
        Me.TextBox3.Text = ""
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(16, 32)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(88, 20)
        Me.TextBox1.TabIndex = 1
        Me.TextBox1.Text = ""
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(392, 165)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.TextBox3)
        Me.Controls.Add(Me.Label3)
        Me.Controls.Add(Me.GroupBox1)
        Me.Controls.Add(Me.TextBox2)
        Me.Controls.Add(Me.Label2)
        Me.Controls.Add(Me.TextBox1)
        Me.Controls.Add(Me.Label1)
        Me.Name = "Form1"
        Me.Text = "Basic Math Tests"
        Me.GroupBox1.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region

    'Declare FirstNum and SecondNum variables
    Public FirstNum, SecondNum As Short
    Public ExceptionFlag As Short


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Assign text box values to variables

        FirstNum = TextBox1.Text
        SecondNum = TextBox2.Text

    End Sub

    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged

        ' Calculate Using Button 1 and catch exceptions (Addition)
        Try
            TextBox3.Text = FirstNum + SecondNum
        Catch Exception As System.OverflowException
            MessageBox.Show("This number is TOO LARGE. Please clear your input and try again" & Exception.Message)
        End Try

    End Sub
    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
        Try
            TextBox3.Text = FirstNum - SecondNum
        Catch Exception As ()
            MessageBox.Show()
        End Try
    End Sub


    Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
        Try
            TextBox3.Text = FirstNum * SecondNum
        Catch Exception As ()
            MessageBox.Show()
        End Try
    End Sub

    Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
        Try
            TextBox3.Text = FirstNum / SecondNum

        Catch Exception As DivideByZeroException

            MessageBox.Show("Cannot devide by zero!", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub

    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged

    End Sub

    Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class
0
 

Expert Comment

by:Potchitka
Comment Utility
Would you please let me know of a way to fix the addition part without ruining the rest of the calculations?
0
 

Expert Comment

by:Potchitka
Comment Utility
Please disregard my message about the addition. I have modified my code to fix that. I would like some help with the division are though. The calculator program does not bomb-out as a result of a divide by zero condition. How could I test for an exception, when no exception appears to occur. Please refer to my submitted code. Thanks.
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

A short article about a problem I had getting the GPS LocationListener working.
If you’re thinking to yourself “That description sounds a lot like two people doing the work that one could accomplish,” you’re not alone.
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now