Python Programming - X. Exception Handling and Assertions
Upcoming SlideShare
Loading in...5
×
 

Python Programming - X. Exception Handling and Assertions

on

  • 352 views

 

Statistics

Views

Total Views
352
Views on SlideShare
352
Embed Views
0

Actions

Likes
1
Downloads
43
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Python Programming - X. Exception Handling and Assertions Python Programming - X. Exception Handling and Assertions Presentation Transcript

  • PYTHON PROGRAMMING Engr. Ranel O. Padon X. EXCEPTION HANDLING
  • PYTHON PROGRAMMING TOPICS I • Introduction to Python Programming II • Python Basics III • Controlling the Program Flow IV • Program Components: Functions, Classes, Packages, and Modules V • Sequences (List and Tuples), and Dictionaries VI • Object-Based Programming: Classes and Objects VII • Customizing Classes and Operator Overloading VIII • Object-Oriented Programming: Inheritance and Polymorphism IX • Randomization Algorithms X • Exception Handling and Assertions XI • String Manipulation and Regular Expressions XII • File Handling and Processing XIII • GUI Programming Using Tkinter
  • try except Defensive Programming else finally raise assert class Exception
  • http://www.newser.com/story/20282/china-atm-glitch-nets-man-life.html
  • http://www.newser.com/story/148427/atm-error-lets-man-withdraw-15m-gamble-it-away.html
  • INTRODUCTION Exception is an indication of a special event that occurs during a program’s execution. Exception indicates that, although the event can occur, the event occurs infrequently.
  • INTRODUCTION
  • INTRODUCTION When a Python script encounters a situation that it can't cope with, it raises an exception. An exception is a Python object that represents an error.
  • INTRODUCTION
  • INTRODUCTION
  • INTRODUCTION | Exceptions 1. 2. 3. 4. 5. 6. 7. 8. 9. Division by Zero Addition of two incompatible types. Accessing a file that is nonexistent. Accessing a nonexistent index of a sequence. Deleting a table in a disconnected database server. Withdrawing money greater than the available amount. Invalid input bearing angle. Negative perimeter distance. …
  • INTRODUCTION | Exceptions Resource Leak Aborting a program component could leave a file or a network connection in a state in which other programs are not able to acquire the resource.
  • EXCEPTION HANDLING
  • EXCEPTION HANDLING Advantages 1. handle the error - catching the exception - resolving the exception 2. continue processing as if no error had occured 3. programs are more clear, robust and more fault-tolerant
  • EXCEPTION HANDLING When no exceptions occur, exception-handling code incurs little or no performance penalties. Programs that implement exception handling operate more efficiently than programs that perform error handling throughout the program logic.
  • EXCEPTION HANDLING Brute-Force Error Handling
  • EXCEPTION HANDLING Brute-Force Error Handling it may work, but intermixing the logic of the program with the error-handling logic can make the program difficult to read, modify, maintain and debug—especially in large applications.
  • EXCEPTION HANDLING Exception handling enables the programmer to remove error-handling code from the “main line” of the program’s execution. This improves program clarity and enhances modifiability.
  • EXCEPTION HANDLING | Python Mechanism is similar with that used in Modula-3, C# and Java. Not all programming languages support exception handling.
  • EXCEPTION HANDLING
  • EXCEPTION HANDLING | try-except
  • EXCEPTION HANDLING | try-except Python uses try statements to enable exception handling. The try statement encloses statements that potentially cause exceptions. A try statement consists of keyword try, followed by a colon (:), followed by a suite of code in which exceptions may occur, followed by one or more clauses.
  • EXCEPTION HANDLING | try-except Immediately following the try suite may be one or more except clauses (also called except handlers). Each except clause specifies zero or more exception names that represent the type(s) of exceptions the except clause can handle.
  • EXCEPTION HANDLING | try-except If an exception occurs in a try suite, the try suite expires and program control transfers to the first matching except handler (if there is one) following the try suite.
  • EXCEPTION HANDLING | try-except an except handler always should specify the name of the exception to catch. an empty except handler should be used only for a default catch-all case.
  • EXCEPTION HANDLING | try-except If no exceptions occur in a try suite, the interpreter ignores the exception handlers for that try statement.
  • EXCEPTION HANDLING | try-except
  • EXCEPTION HANDLING | else After the last except clause, an optional else clause contains code that executes if the code in the try suite raised no exceptions.
  • EXCEPTION HANDLING | Summary
  • EXCEPTION HANDLING | Summary
  • EXCEPTION HANDLING | Summary
  • EXCEPTION HANDLING | Summary
  • EXCEPTION HANDLING | finally A try suite can be followed by zero except clauses; in that case, it must be followed by a finally clause. The code in the finally suite always executes, regardless of whether an exception occurs.
  • EXCEPTION HANDLING | finally Programs frequently request and release resources dynamically. Programs that obtain certain types of resources (such as files) sometimes must return those resources explicitly to the system to avoid resource leaks.
  • EXCEPTION HANDLING | finally The finally clause is an ideal location to place resource deallocation code for resources acquired.
  • EXCEPTION HANDLING | finally
  • EXCEPTION HANDLING | finally
  • EXCEPTION HANDLING | finally
  • EXCEPTION HANDLING | finally
  • EXCEPTION HANDLING | Exception Exceptions are objects of classes that inherit from class Exception. Programmer-defined exception classes should derive directly or indirectly from class Exception.
  • class Exception
  • class Exception (1/2)
  • class Exception (2/2)
  • EXCEPTION HANDLING | raise Raising/Throwing An Exception raise keyword Catching and handling exceptions enables a program to know when an error has occurred, then to take actions to minimize the consequences of that error.
  • EXCEPTION HANDLING | raise The raise statement may specify an argument or arguments that initialize the exception object. In this case, a comma follows the exception name, and the argument or a tuple of arguments follows the comma.
  • EXCEPTION HANDLING | raise Args
  • EXCEPTION HANDLING | raise Args
  • EXCEPTION HANDLING | Custom
  • EXCEPTION HANDLING | Custom
  • EXCEPTION HANDLING | Custom
  • EXCEPTION HANDLING | assert An assertion is a sanity-check that you can turn on/off when you are done with your testing of the program. Assertion is like a raise-if statement (or to be more accurate, a raise-if-not statement). An expression is tested, and if the result comes up false, an exception is raised.
  • EXCEPTION HANDLING | assert Programmers often place assertions at the start of a function to check for valid input, and after a function call to check for valid output.
  • EXCEPTION HANDLING | assert
  • EXCEPTION HANDLING | assert
  • EXCEPTION HANDLING | assert
  • EXCEPTION HANDLING | assert
  • EXCEPTION HANDLING | assert
  • EXCEPTION HANDLING | assert
  • EXCEPTION HANDLING
  • EXCEPTION HANDLING
  • REFERENCES  Deitel, Deitel, Liperi, and Wiedermann - Python: How to Program (2001).  Disclaimer: Most of the images/information used here have no proper source citation, and I do not claim ownership of these either. I don’t want to reinvent the wheel, and I just want to reuse and reintegrate materials that I think are useful or cool, then present them in another light, form, or perspective. Moreover, the images/information here are mainly used for illustration/educational purposes only, in the spirit of openness of data, spreading light, and empowering people with knowledge. 
  • Thank You!