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

Homework - Canyon s23 vcls cf 25 mm setback - Traditional Chinese - When does hansberry visit her grandmother - Obama nobel speech analysis - Fermi energy and electron density - Bob priscilla queen of the desert - Stay where you are until our backs are turned - Rise and fall of the roman empire essay - Monster study ethical issues - Assignment - Zero plagiarism - Professional issue - Intel byod policy - Prodiscover basic download - Cisco vlan dot1q tag native - Quiz - Philosophy of special education essay - History test - Two investment opportunities are as follows - LIGHTING THE WAY AT THE MANOR HOUSE HOTEL CASE STUDY - Discussion #2 - Mcgraw hill connect plus register now - 24 ft extension ladder fire service - Researching Database Solutions - Average hotel rate in new york city - Www boq com internet banking - Steve clark british airways scandal - Cite your sources using apa format week 5 assignment - Discussion needed by wed @ 6pm - Egvsys miamidade gov inmate search - Casual use case example - Ben hur 1925 blu ray - Thomas book sales inc supplies textbooks - P10 1a accounting answers - Body recomposition workout plan pdf - How to draw paul revere - Com510 Week8 - Yoga video Reflection Journal - The pendulum consists of a uniform disk with radius - Interaction Between Nurse Informaticists and Other Specialists - Robinson crusoe physical description - Who wants to be a millionaire powerpoint download - Ansi z535 4 arc flash - The tale of despereaux queen - 3 letter blend words - Dibenzalacetone hazards - Http www mplans com sample_marketing_plans php - Https www amazon com ref nav_logo_prime - Cqu master of teaching - Advanced pathophysiology - Fiat 500 target market - Which is not true of franklin roosevelt's early life - 512-717-9493 - MG401 Leadership Assignment 6 - Cell division mitosis lab - Arbonne smoothing facial cleanser ingredients - Charges of transition metals list - Order 2597946: Induction Plans for Beginning Teachers - Parts of a url - Elementary class president speech examples - Fin 100 assignement week 1 - Article review - Fundamentals of supply chain management dr dawei lu - Enraf servo gauge 854 - Ziegler natta catalyst slideshare - Plato's objection to poetry - X treme vitamin company is considering two investments - The last mountain movie questions answers - Air force defence guard - Cities are for humans not for cars essay - 315 kva transformer amps - Costco pet insurance uk - Wk 7 forum 2 Jade - Choose a technology from the Gartner Hype Cycle 2020. - Geometry area apothem worksheet key - Fundamental skill lesson plan - The pediatrician described jason's pharynx - Building a simple network packet tracer - Referee Report - Twin lakes mining company - Slope of perpendicular line calculator - Cansat 2018 mission guide - Worksheet 5.6 finding euler circuits and euler paths answers - Gases in the atmosphere pie chart - Data for hermann corporation are shown below - 5.1 4 gram staining conclusion questions quizlet - Adam Fuss and Defining Creativity - Itf licensing uk ltd - Managerial accounting learnsmart answers - Gsi commerce solutions kate spade - An academic department with five faculty members - Limitations of language laboratory - Que es una bibliografia anotada - Cio presentation ppt - Writing Help - How to find the range of a reciprocal function - Three swans surgery salisbury - Research paper - Wk 7 forum 2 Samuel - Highfields awarding body for compliance habc - A tale of two cities summary