📂
CS-NoteBook
  • Introduction
  • CS144
    • concise introduction to Internet
      • 1.1 Networked Applications
      • 1.2 The 4 Layer Internet
      • 1.3 IP
      • 1.4 A Day in the Life of a Packet
      • 1.5 Principle: Packet Switching
      • 1.6 Principle:Layering
      • 1.7 Principle: Encapsulation
      • 1.8 Byte order and packet formats
      • 1.9 name and addresses:IPv4
      • 1.10 Longest Prefix Match for Link Layer
      • 1.11 Address Resolution Protocol(ARP)
      • 1.12 Summary
    • Transport Layer
      • 2.1 The TCP Service Model
      • 2.2 UDP service model
      • 2.3 ICMP(Internet Control Message Protocol 互联网报文控制协议)
      • 2.4 The End-to-End Principle
      • 2.5 Error Detection:3 schemes (Checksum,CRC and MAC)
      • 2.6 Finite State Machines(有限状态机)
      • 2.7 Flow Control
      • 2.8 Sliding window
      • 2.9 Retransmission Strategies
      • 2.10 TCP Header
      • 2.11 TCP Setup and Teardown
      • 2.12 Recap
    • Package Switching
      • 3.1 The history of Internet
      • 3.2 What is packet switching
      • [3.3 End-to-end delay and Queueing delay
      • 3.4 Playback Buffer(回放缓存区)
  • CS 61C
    • 1.4 C Memory Mangement, Usage
    • 1.5 Intro to Assembly Language, MIPS Intro
    • 1.5 extra bits operation
  • CS 61B
  • CS 61A
    • Function
    • Names
    • The Art of the Function
    • Control
    • Higher-Order Function
    • Recursive Function
    • List
    • Non-Local Assignment
    • Iterators
    • Objects
    • Data Abstraction
    • OOP
    • Inheritance
    • Representations
    • Decomposition
    • Scheme
    • Exceptions
    • Calculator
    • Interpreters
    • Declarative_Programming
    • Table
    • Aggregation
      • More_recursion
    • Databases
    • Distributed_Data
    • Tail Recursion
    • Exercises
      • lab00
      • lab01
      • hw01
      • tree Recursion example -- give Change
  • The Web DevelopMent Bootcamp
    • html5
    • css
    • bootstrap3
    • bootstrap4
    • javascript expression
    • javascript function
Powered by GitBook
On this page
  • Raise Excepitons
  • handle exceptions
  • 经典用例:

Was this helpful?

  1. CS 61A

Exceptions

未处理的异常会导致 Python 停止执行,并打印一个堆栈跟踪。

  • 异常是对象。

  • 异常处理往往很慢。

Raise Excepitons

  • assert

    • assert <expression>, <string>

    • 导致 AssertionError

  • raise <expression>

    • <expression>必须为 BaseException 的一个子类或一个实例。

    • 异常的构造就像其他对象一样。例如,TypeError('Bad argument!')

      • TypeError -- 一个函数被传递了错误的参数数量/类型。

      • NameError -- 没有找到一个名字。

      • KeyError -- 在字典中没有找到一个键。

      • RecursionError -- 递归调用太多。

handle exceptions

try:
 <try suite>
except <exception class> as <name>:
 <except suite>
...
  • 先执行 <try suite>

  • 如果在执行 <try suite> 的过程中引起异常

  • 并且如果异常的类继承自<exception class>,

  • 那么执行<except suite>,将<name>绑定到异常上

>>> try:
        x = 1/0
    except ZeroDivisionError as e:
        print('handling a', type(e))
        x = 0

handling a <class 'ZeroDivisionError'>
>>> x
0
  • 多个 handle 时,执行最近的

经典用例:

  • reduce

    • def reduce(f, s, initial): 用 f 对 s 的元素进行组合,从initial开始。

    • 如果 f 是 division, 需要处理除以 0 的情况

PreviousSchemeNextCalculator

Last updated 4 years ago

Was this helpful?