Public speaking course notes Read "Dynamo, Amazon’s Highly Available Key-value Store" Read "Bigtable, A Distributed Storage System for Structured Data" Read "Streaming Systems" 3, Watermarks Read "Streaming Systems" 1&2, Streaming 101 Read "F1, a distributed SQL database that scales" Read "Zanzibar, Google’s Consistent, Global Authorization System" Read "Spanner, Google's Globally-Distributed Database" Read "Designing Data-intensive applications" 12, The Future of Data Systems IOS development with Swift Read "Designing Data-intensive applications" 10&11, Batch and Stream Processing Read "Designing Data-intensive applications" 9, Consistency and Consensus Read "Designing Data-intensive applications" 8, Distributed System Troubles Read "Designing Data-intensive applications" 7, Transactions Read "Designing Data-intensive applications" 6, Partitioning Read "Designing Data-intensive applications" 5, Replication Read "Designing Data-intensive applications" 3&4, Storage, Retrieval, Encoding Read "Designing Data-intensive applications" 1&2, Foundation of Data Systems Three cases of binary search TAMU Operating System 2 Memory Management TAMU Operating System 1 Introduction Overview in cloud computing 2 TAMU Operating System 7 Virtualization TAMU Operating System 6 File System TAMU Operating System 5 I/O and Disk Management TAMU Operating System 4 Synchronization TAMU Operating System 3 Concurrency and Threading TAMU Computer Networks 5 Data Link Layer TAMU Computer Networks 4 Network Layer TAMU Computer Networks 3 Transport Layer TAMU Computer Networks 2 Application Layer TAMU Computer Networks 1 Introduction Overview in distributed systems and cloud computing 1 A well-optimized Union-Find implementation, in Java A heap implementation supporting deletion TAMU Advanced Algorithms 3, Maximum Bandwidth Path (Dijkstra, MST, Linear) TAMU Advanced Algorithms 2, B+ tree and Segment Intersection TAMU Advanced Algorithms 1, BST, 2-3 Tree and Heap TAMU AI, Searching problems Factorization Machine and Field-aware Factorization Machine for CTR prediction TAMU Neural Network 10 Information-Theoretic Models TAMU Neural Network 9 Principal Component Analysis TAMU Neural Network 8 Neurodynamics TAMU Neural Network 7 Self-Organizing Maps TAMU Neural Network 6 Deep Learning Overview TAMU Neural Network 5 Radial-Basis Function Networks TAMU Neural Network 4 Multi-Layer Perceptrons TAMU Neural Network 3 Single-Layer Perceptrons Princeton Algorithms P1W6 Hash Tables & Symbol Table Applications Stanford ML 11 Application Example Photo OCR Stanford ML 10 Large Scale Machine Learning Stanford ML 9 Anomaly Detection and Recommender Systems Stanford ML 8 Clustering & Principal Component Analysis Princeton Algorithms P1W5 Balanced Search Trees TAMU Neural Network 2 Learning Processes TAMU Neural Network 1 Introduction Stanford ML 7 Support Vector Machine Stanford ML 6 Evaluate Algorithms Princeton Algorithms P1W4 Priority Queues and Symbol Tables Stanford ML 5 Neural Networks Learning Princeton Algorithms P1W3 Mergesort and Quicksort Stanford ML 4 Neural Networks Basics Princeton Algorithms P1W2 Stack and Queue, Basic Sorts Stanford ML 3 Classification Problems Stanford ML 2 Multivariate Regression and Normal Equation Princeton Algorithms P1W1 Union and Find Stanford ML 1 Introduction and Parameter Learning

Exception Handling in python

2016-07-14

1. Catch Exception

1.1 Basic Grammar

Put the code that may cause exception into the block after try, and then catch it with except block, if the exception type match, the execute the code block inside except.

try:
    # write some code
    # that might throw exception
except <ExceptionType>:
    # Exception handler, alert the user

For example, reading a file that does not exist will cause IOError, we can plan ahead for this error.

try:
    f = open('nofile.txt', 'r')
    print f.read()
    f.close()
except IOError:
    print 'file not found'
file not found

The flow is as listed:

  1. First statement between try and except block are executed.
  2. If no exception occurs then code under except clause will be skipped.
  3. If file don’t exists then exception will be raised and the rest of the code in the try block will be skipped
  4. When exceptions occurs, if the exception type matches exception name after except keyword, then the code in that except clause is executed.

1.2 More exception types

try:
    <body>
except <ExceptionType1>:
    <handler1>
except <ExceptionTypeN>:
    <handlerN>
except:
    <handlerExcept>
else:
    <process_else>
finally:
    <process_finally>
  1. except acts like elif,when trythrough an error,match every exception after except keyword. If match, then execute; else execute the one without specified exception type.

  2. else block is executed only when try through no error。

  3. finally will always be executed, with or without exception。

1.3 Example

num1, num2 = 1,0
try:
    result = num1 / num2
    print("Result is", result)

except ZeroDivisionError:
    print("Division by zero is error !!")

except:
    print("Wrong input")

else:
    print("No exceptions")

finally:
    print("This will execute no matter what you input")
Division by zero is error !!
This will execute no matter what you input

2. Throw erroe

Use raise to throw self defined exception。raise ExceptionClass('Your argument')

def enterage(age):
    if age < 0:
        raise ValueError("Only positive integers are allowed")

    if age % 2 == 0:
        print("age is even")

try:
    num = int(input("Enter your age: "))
    enterage(num)
except ValueError:
    print 'Only positive integers are allowd'
except:
    print 'Something went wrong'
Enter your age: -3
Only positive integers are allowd

More information onDocuments
exception

3. Manipulate exception

We can pass the exception to a variable, and it’s pretty easy.

try:
    # this code is expected to throw exception
except ExceptionType as ex:
    # code to handle exception
try:
    number = int(input("Enter a number: "))
    print "The number entered is", number

except NameError as ex:
    print "Exception:", ex
Enter a number: one
Exception: name 'one' is not defined

Creative Commons License
Melon blog is created by melonskin. This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
© 2016-2024. All rights reserved by melonskin. Powered by Jekyll.