MST

星途 面试题库

面试题:Python多线程编程中常见异常及处理方式

在Python多线程编程里,列举至少两种常见的异常类型,并说明如何使用try - except语句进行常规处理。
47.2万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

常见异常类型及处理方式

  1. RuntimeError
    • 产生场景:当线程相关的操作在不适当的环境下进行时,可能会引发此异常。例如,尝试启动一个已经启动过的线程。
    • 处理示例
import threading


def target_function():
    pass


t = threading.Thread(target = target_function)
t.start()
try:
    t.start()
except RuntimeError as e:
    print(f"捕获到RuntimeError: {e}")
  1. ThreadError
    • 产生场景ThreadError是线程模块中所有异常的基类,当线程操作出现错误时可能引发它(虽然直接引发的情况较少,更多是引发其子类异常)。例如,使用非法参数创建线程。
    • 处理示例
import threading


try:
    t = threading.Thread(target = None, args = (1, 2))
except threading.ThreadError as e:
    print(f"捕获到ThreadError: {e}")
  1. AttributeError
    • 产生场景:当在多线程环境中访问对象不存在的属性时可能引发。例如,在创建线程对象后,误将start方法写成了starts
    • 处理示例
import threading


def target_function():
    pass


t = threading.Thread(target = target_function)
try:
    t.starts()
except AttributeError as e:
    print(f"捕获到AttributeError: {e}")