try:import xlrdsexcept ModuleNotFoundError:print (str("The current environment does not have the xlrd module"))else:print (str("Import successfully"))
2、完整的异常处理结构
一个完整的异常处理结构可能包括try, except, else, 和 finally:
try: 这个块中的代码是需要尝试执行的,可能会引发异常。
except: 如果在try块中发生异常,则执行这个块中的代码。
else: 如果try块中没有异常发生,则执行这个块中的代码。
finally: 无论是否发生异常,这个块中的代码都会被执行。
try:# 尝试除以零操作,这将引发一个ZeroDivisionError异常result = 10 / 0except ZeroDivisionError:# 捕获到除以零的异常后,执行这里的代码print("Caught an error: Cannot divide by zero.")else:# 如果没有异常发生,执行这里的代码print("Division successful.")finally:# 无论是否发生异常,都执行这里的代码print("This is executed no matter what.")
Caught an error: Cannot divide by zero.This is executed no matter what.
try语句块可以搭配多个except子句来捕获不同类型的异常,并根据异常类型执行不同的处理逻辑。您还可以使用一个except子句捕获多个异常类型,使用try和except可以帮助构建更加健壮、容错性更高的程序。
这是通过try检查用户输出字符类型是否正确。
def _isfloat(num):try:float(num)return Trueexcept (ValueError, OverflowError, RuntimeError, TypeError):return Falsedef _isint(num):try:int(num)return Trueexcept (ValueError, OverflowError, RuntimeError, TypeError):return False
以判断单元类型为例,当然实际开发中我们可以通过type直接获取单元类型,这里只是举例说明,通过判断是否存在G4来判断单元类型:
from ansa import basefrom ansa import constantselem = base.CollectEntities(constants.NASTRAN, None, "__ELEMENTS__", filter_visible=True)[0]elemV = base.GetEntityCardValues(constants.NASTRAN, elem, ['G4','typ'])#print (elemV)try:elemV['G4']except KeyError:type="CTRIA3"else:type="CQUAD4"print (type)