Loading...

Messages

Proposals

Stuck in your homework and missing deadline? Get urgent help in $10/Page with 24 hours deadline

Get Urgent Writing Help In Your Essays, Assignments, Homeworks, Dissertation, Thesis Or Coursework & Achieve A+ Grades.

Privacy Guaranteed - 100% Plagiarism Free Writing - Free Turnitin Report - Professional And Experienced Writers - 24/7 Online Support

C# catch multiple exception types

24/11/2021 Client: muhammad11 Deadline: 2 Day

An Object-Oriented Approach to Programming Logic and Design Fourth Edition

Chapter 10

Exception Handling

Objectives

In this chapter, you will learn about:

Exceptions

The limitations of traditional error handling

Trying code and catching exceptions

Throwing and catching multiple exceptions

Using the finally block

The advantages of exception handling

Tracing exceptions through the call stack

Creating your own exceptions

2

An Object-Oriented Approach to Programming Logic and Design

Learning about Exceptions

Exception

Unexpected or error condition

Occurs while program is running

Unusual occurrence

Examples

Reading a nonexistent file

Writing data to a full disk

Entering invalid input data

Dividing a value by zero

Accessing an array using too-large subscript

Calculating a value that exceeds the variable type’s limit

3

An Object-Oriented Approach to Programming Logic and Design

Learning about Exceptions (cont’d)

Exception handling

Object-oriented techniques used to manage errors

Group of methods

Handles predictable errors

Unpredictable errors

Program cannot recover

Exception handling not used

Example: power failure

4

An Object-Oriented Approach to Programming Logic and Design

5

An Object-Oriented Approach to Programming Logic and Design

Figure 10-1 illustrates a method that might divide by 0

Figure 10-2 demonstrates an exception message generated in Java when the program attempts to divide by 0

Figure 10-1

Figure 10-2

Learning about Exceptions (cont’d)

Throwing an exception

When method detects an exception

Failure to handle exception

Program terminates: abrupt and unforgiving

Example in Figure 10-2 on previous slide

Two approaches to handling exceptions

Traditional manner

Object-oriented manner provides more elegant (and safer) solutions

6

An Object-Oriented Approach to Programming Logic and Design

Learning about Exceptions (cont’d)

Examples of typical exceptions

Attempt to divide by zero

ArithmeticException or DivideByZeroException

Attempt to store object of wrong data type in an array

ArrayTypeMismatchException

Attempt to access array with invalid subscript

IndexOutOfRangeException

Object reference does not correctly refer to created object

NullReferenceException

Arithmetic operation produces a greater value than assigned memory location can accommodate

OverflowException

7

An Object-Oriented Approach to Programming Logic and Design

Understanding the Limitations of Traditional Error Handling

Error conditions existed before object-oriented methods

Most common error-handling solution

Make a decision before using a potentially error-causing value

Example: Figure 10-3 displays error message if divisor is zero

8

An Object-Oriented Approach to Programming Logic and Design

Figure 10-3

Understanding the Limitations of Traditional Error Handling (cont’d)

Alternative solutions and issues

Prompt user for new value

Not useful if application retrieves file input

Force divisor to one

Not useful if produces wrong answer

Drawbacks to traditional error-handling approaches

Client using traditional error-handling method must accept method’s error-handling solution

Inflexible

May require multiple method versions

9

An Object-Oriented Approach to Programming Logic and Design

Understanding the Limitations of Traditional Error Handling (cont’d)

Exception handling

More elegant solution for error-handling conditions

Method detects errors, but client handles them

Terminology

“Try” code: tests a procedure that might cause an error

“Throws an exception”: the code that detects an error sends an exception object to another method or to the operating system

“Catches the exception”: a block of code receives the error and takes appropriate action

10

An Object-Oriented Approach to Programming Logic and Design

Trying Code and Catching Exceptions

try block

Block of code you attempt to execute

Can contain any number of statements or method calls

If exception occurs, the remaining statements in try block do not execute

catch block

Code segment handling exception thrown by try block

Need at least one following a try block

11

An Object-Oriented Approach to Programming Logic and Design

Trying Code and Catching Exceptions (cont’d)

throw statement

Sends an exception object out of method to be handled elsewhere

catch block

Consists of keyword catch, followed by parentheses that contain exception type and identifier

Statements that take action to handle error

An endcatch statement (pseudocode)

Can handle one exception type only

Does not execute if no exception occurs

12

An Object-Oriented Approach to Programming Logic and Design

13

An Object-Oriented Approach to Programming Logic and Design

General format of a method that includes a shaded try…catch pair

Figure 10-4

Trying Code and Catching Exceptions (cont’d)

Statements after catch block

Execute normally whether or not there is an exception

14

An Object-Oriented Approach to Programming Logic and Design

Method with a try block that attempts division

Figure 10-5

Trying Code and Catching Exceptions (cont’d)

Figure 10-5 (previous slide)

throw operation occurred implicitly

Programmer did not have to write a throw statement

throw and catch operations reside in same method

Similar to if...else pair that handles error

throw and catch blocks may reside in separate methods

Variable mistake in catch block

Object of type Exception (not used)

Exception class may contain a method called getMessage() that returns information about the cause of the error

15

An Object-Oriented Approach to Programming Logic and Design

Throwing and Catching Multiple Exceptions

try block can contain as many statements as needed

First error-generating statement throws an exception

Logic transfers to catch block

Remaining try block statements unexecuted

Can catch as many exceptions as desired

Examined sequentially until match found

Matching catch block executes

Remaining catch blocks bypassed

16

An Object-Oriented Approach to Programming Logic and Design

Figure 10-6

17

An Object-Oriented Approach to Programming Logic and Design

Program throws two types of exceptions: ArithmeticExceptions and IndexOutOfBoundsExceptions

18

An Object-Oriented Approach to Programming Logic and Design

Each of the two catch blocks displays a different message

Figure 10-7

19

An Object-Oriented Approach to Programming Logic and Design

Uses a single generic catch block to catch any type of exception

Figure 10-8

Throwing and Catching Multiple Exceptions (cont’d)

Unreachable code

Statements never execute under any circumstance

Also known as dead code

To avoid unreachable code, order catch blocks correctly

More specific exception types first

More general types follow to catch remaining errors

20

An Object-Oriented Approach to Programming Logic and Design

21

An Object-Oriented Approach to Programming Logic and Design

Class that contains an unreachable catch block

Figure 10-9

Using the finally Block

Used when specific actions are needed at the end of a try…catch sequence

Always executes whether or not exception occurred

22

An Object-Oriented Approach to Programming Logic and Design

try…catch sequence that uses a finally block

Figure 10-10

Compare Figure 10-4 with Figure 10-10

23

An Object-Oriented Approach to Programming Logic and Design

Figure 10-4

Using the finally Block (cont’d)

Comparison of Figures 10-10 and 10-4

When Figure 10-4 try code works without error

Control passes to statements at end of method

When try code fails and throws an exception

Exception is caught

catch block executes

Control passes to statements at end of method

Figure 10-4 statements at end may not execute

Unplanned (uncaught) exception occurs

Statements in try or catch block cause program termination

24

An Object-Oriented Approach to Programming Logic and Design

Using the finally Block (cont’d)

Unhandled exception

Program execution stops immediately

Exception sent to operating system

Current method abandoned

Including a finally block

Assures finally statements will execute

Before method abandoned

Even if method concludes prematurely

Often used to close data files

25

An Object-Oriented Approach to Programming Logic and Design

Using the finally Block (cont’d)

26

An Object-Oriented Approach to Programming Logic and Design

Pseudocode tries reading a file and handles an exception

finally block closes the file

Figure 10-11

Using the finally Block (cont’d)

Code in finally block executes for each of the following outcomes of the try block

try ends normally with no exceptions

try throws FileException to the catch block, which executes and ends program

Another exception causes try block to be abandoned prematurely and catch block does not execute

27

An Object-Oriented Approach to Programming Logic and Design

Understanding the Advantages of Exception Handling (cont’d)

Confusing

Error-prone

Figure 10-12: pseudocode representing traditional error checking

28

An Object-Oriented Approach to Programming Logic and Design

Handling potential program errors before advent of object-oriented languages

Figure 10-12

Understanding the Advantages of Exception Handling (cont’d)

Handling potential program errors with object-oriented techniques

29

An Object-Oriented Approach to Programming Logic and Design

Code is:

Simpler

Easier to read

More flexible

Reusable

Figure 10-13: illustrates object-oriented approach

Figure 10-13

Understanding the Advantages of Exception Handling (cont’d)

Figure 10-14: Potential error in displayPrice() method: accepts argument as array subscript

Subscript could be out of bounds

Method might throw an exception

30

An Object-Oriented Approach to Programming Logic and Design

Figure 10-14

Understanding the Advantages of Exception Handling (cont’d)

Figures 10-15 and 10-16 show two ways to handle Figure 10-14 error exception

An Object-Oriented Approach to Programming Logic and Design

31

Exception displays a price of $0

Figure 10-15

Figure 10-16

Understanding the Advantages of Exception Handling (cont’d)

An Object-Oriented Approach to Programming Logic and Design

32

Exception includes an input dialog box to prompt user for a new item number until it is within range

Tracing Exceptions through the Call Stack

When one method calls another

Operating system keeps track of calling method

Program control returns to calling method once method completes

Call stack

Memory location

Computer stores list of method memory locations

Where system must return after call completed

33

An Object-Oriented Approach to Programming Logic and Design

Tracing Exceptions through the Call Stack (cont’d)

34

An Object-Oriented Approach to Programming Logic and Design

When method throws an exception

If same method does not catch it, exception thrown to next method up the call stack

Demonstrates how call stack works

Figure 10-17

Tracing Exceptions through the Call Stack (cont’d)

If no method in chain handles the exception

Given to operating system

Passing exceptions through chain of calling methods

Advantages

Can handle exceptions wherever most appropriate (includes operating system)

Can use printStackTrace(): debugging tool that displays a list of methods in the call stack to determine location of exception

Disadvantages

Difficulty locating original source of the exception (if program uses several classes)

35

An Object-Oriented Approach to Programming Logic and Design

A Case Study: Tracing the Source of an Exception

See flaw (shaded) in Figure 10-18

Subscript set to 2 instead of 1 for higher tax rate

Out of bounds error occurs if subscript used with taxRate array

36

An Object-Oriented Approach to Programming Logic and Design

Figure 10-18

A Case Study: Tracing the Source of an Exception (cont’d)

Assume Tax class is a purchased class (black box)

Figure 10-19 shows a sample Prices class

37

An Object-Oriented Approach to Programming Logic and Design

Figure 10-19

A Case Study: Tracing the Source of an Exception (cont’d)

Figure 10-20: New application (next slide)

Asks user to enter item number

Passes item to Prices.displayPrice()

Tries item entry and catches exception

Executing program using valid item number

Receive “Error!” message from catch block

To discover what caused the message, replace catch block statement with mistake.printStackTrace()

38

An Object-Oriented Approach to Programming Logic and Design

A Case Study: Tracing the Source of an Exception (cont’d)

39

An Object-Oriented Approach to Programming Logic and Design

Prompts user for an item number and passes it to Prices.displayPrice()

Figure 10-20

A Case Study: Tracing the Source of an Exception (cont’d)

40

An Object-Oriented Approach to Programming Logic and Design

Figure 10-21 shows output from C# execution

Figure 10-21

Creating Your Own Exceptions

Object-oriented languages provide built-in Exception types

Cannot predict every possible condition

Programmer may create application-specific exceptions

Usually extend a built-in Exception class

41

An Object-Oriented Approach to Programming Logic and Design

Creating Your Own Exceptions (cont’d)

42

An Object-Oriented Approach to Programming Logic and Design

Pseudocode in Figure 10-22

Creates HighBalanceException

Assumes that the parent class contains a setMessage() method

Constructor contains a single statement to set error message

Figure 10-22

Figure 10-23

Creating Your Own Exceptions (cont’d)

43

An Object-Oriented Approach to Programming Logic and Design

CustomerAccount class using HighBalanceException

If account balance exceeds limit, an instance of the class is created and thrown

Figure 10-24

Creating Your Own Exceptions (cont’d)

44

An Object-Oriented Approach to Programming Logic and Design

Application constructs a CustomerAccount object within a try block

Creating Your Own Exceptions (cont’d)

Do not create excessive number of special Exception types

Add complexity for other programmers

Advantages of specialized Exception classes

Provides elegant handling of error situations

Separates error code from normal code

Passes errors up the stack and traces them

Client classes handle exceptions in manner most suitable for the application

45

An Object-Oriented Approach to Programming Logic and Design

Summary

Exception:

Unexpected or error condition

Exception handling

Techniques used to manage actions following an exception

try block

Wraps code that might cause an exception

catch block

Set of code statements to handle specific error types

Multiple catch blocks

Handle different error types

46

An Object-Oriented Approach to Programming Logic and Design

Summary (cont’d)

finally block

Statements always executed after try block

Used to perform cleanup tasks

Object-oriented exception-handling techniques

Provide flexibility in handling exceptions

Call stack

Memory location storing method locations list

Built-in exceptions

Cannot predict every condition

Can write your own exceptions

47

An Object-Oriented Approach to Programming Logic and Design

Homework is Completed By:

Writer Writer Name Amount Client Comments & Rating
Instant Homework Helper

ONLINE

Instant Homework Helper

$36

She helped me in last minute in a very reasonable price. She is a lifesaver, I got A+ grade in my homework, I will surely hire her again for my next assignments, Thumbs Up!

Order & Get This Solution Within 3 Hours in $25/Page

Custom Original Solution And Get A+ Grades

  • 100% Plagiarism Free
  • Proper APA/MLA/Harvard Referencing
  • Delivery in 3 Hours After Placing Order
  • Free Turnitin Report
  • Unlimited Revisions
  • Privacy Guaranteed

Order & Get This Solution Within 6 Hours in $20/Page

Custom Original Solution And Get A+ Grades

  • 100% Plagiarism Free
  • Proper APA/MLA/Harvard Referencing
  • Delivery in 6 Hours After Placing Order
  • Free Turnitin Report
  • Unlimited Revisions
  • Privacy Guaranteed

Order & Get This Solution Within 12 Hours in $15/Page

Custom Original Solution And Get A+ Grades

  • 100% Plagiarism Free
  • Proper APA/MLA/Harvard Referencing
  • Delivery in 12 Hours After Placing Order
  • Free Turnitin Report
  • Unlimited Revisions
  • Privacy Guaranteed

6 writers have sent their proposals to do this homework:

Quick N Quality
WRITING LAND
Engineering Help
Top Essay Tutor
Financial Analyst
Buy Coursework Help
Writer Writer Name Offer Chat
Quick N Quality

ONLINE

Quick N Quality

I am an experienced researcher here with master education. After reading your posting, I feel, you need an expert research writer to complete your project.Thank You

$23 Chat With Writer
WRITING LAND

ONLINE

WRITING LAND

I reckon that I can perfectly carry this project for you! I am a research writer and have been writing academic papers, business reports, plans, literature review, reports and others for the past 1 decade.

$15 Chat With Writer
Engineering Help

ONLINE

Engineering Help

I will be delighted to work on your project. As an experienced writer, I can provide you top quality, well researched, concise and error-free work within your provided deadline at very reasonable prices.

$20 Chat With Writer
Top Essay Tutor

ONLINE

Top Essay Tutor

I am a professional and experienced writer and I have written research reports, proposals, essays, thesis and dissertations on a variety of topics.

$18 Chat With Writer
Financial Analyst

ONLINE

Financial Analyst

I am a professional and experienced writer and I have written research reports, proposals, essays, thesis and dissertations on a variety of topics.

$20 Chat With Writer
Buy Coursework Help

ONLINE

Buy Coursework Help

I have done dissertations, thesis, reports related to these topics, and I cover all the CHAPTERS accordingly and provide proper updates on the project.

$31 Chat With Writer

Let our expert academic writers to help you in achieving a+ grades in your homework, assignment, quiz or exam.

Similar Homework Questions

Beautiful black lesbian seduces young girl - 2 assignment due in 48 hours - Juniper ssg 320m end of life - Charles darwin university darwin waterfront - 2 page essay - Law - Physics kinematics equations worksheet - Dr mihaltan florin dumitru - Beam alignment test tool - Michael frank brown university - Week 5 - Assignment 2: Evaluate Current Research about e-Commerce - Pakistan flag hoisted in kerala - Research problems - Ty mawr lime hemp mix - Dubai race car experience - Give iupac names for the following structures - Compare summer and winter - Hpe ilo license activation - International journal of soft computing and engineering ijsce - The woman warrior white tigers - MKT 630 DQ4 - What professions comprise your career field workplace? - Hitech breach notification rule - Tax withholding declaration form - Naming polyatomic compounds quiz - Percent of data within 2 standard deviations - Essentials of negotiation lewicki 5th edition pdf - Theoretical framework examples in research - Hurt so good footloose scene - Plan and document presentation approach and intended outcomes - What sentence clarifies the focus of a paragraph - Cadet oer support form example - Spencer supplies stock is currently selling - What are nursing quality indicators - Paparazzi compliance phone number - Infotech Global Economy - How to open command prompt in cisco packet tracer - The rocking horse winner mla citation - Spartan mc1000 cricket bag - Wigan pier do you want it right now lyrics - Lab investigating biological compounds answers - A clean well lighted place mla citation - Fine Arts Paper - The greatest showman dvd ireland tesco - Student information system functional requirements - Difference that emerges from our male and female bodies. - 10 column worksheet adjusted trial balance - Microsoft Power Point Assignments 3 - Pinkerton academy phone number - Www testingfor schools com code - How to change sparkline style in excel 2013 - How to calculate the heat of reaction - Marine plastic pollution in asia - Quinton narkle hair colour - Marissa Jones Only!!!! - The meaning of friendship in a social networked world - Tesla case study strategic management - How to work out expected frequency - Serum1111 - Debt capacity calculation excel - Compare and contrast diagram - British heart foundation cough cpr - HSE 6-2 - Week 3 - Grave city is considering the relocation of several - Mezirow's transformative learning theory - 250 word essay - Contemporary issues in business management - I need 300 words in Systematic risk, also known as "market risk" or "un-diversifiable risk" - Co op bookshop acu - Ancient greek colonies in the black sea - John a squatters nugget reno nevada - Sale of common stock to investors account classification - Signature assignment financial statement analysis and firm performance - WK 11 socw 8205 Discussion 2: Social Work in Palliative Care - Netgear jfs516 manual pdf - The real csi frontline summary - The barn owl gwen harwood - Discussion Post 3: Mulcahy and Payton - Convert 314.01 to icd 10 - 0.000583 in standard form - Lexi in the vampire diaries - Upon arriving in london what did magwitch call himself - Activist reflector theorist pragmatist quiz - Federal Laws and Regulations - How much is a nolan ryan rookie card worth - Parkes weber syndrome life expectancy - Vocabulary - Dr donald acheson essex - Gold coast school florida - Prepare a classified balance sheet as of december 31 2022 - Making virtual teams work ten basic principles - Cpt code for femoral neck fracture - Australian standards tiling wet areas - Town and country lovers nadine gordimer pdf - Risk Management and Mitigation Planning - Leadership qualities of bill gates pdf - Refraction of light experiment conclusion - Institute of certified bookkeepers australia - Find a Resource Collaboration