try:
import xlrds
except 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 / 0
except 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 True
except (ValueError, OverflowError, RuntimeError, TypeError):
return False
def _isint(num):
try:
int(num)
return True
except (ValueError, OverflowError, RuntimeError, TypeError):
return False
以判断单元类型为例,当然实际开发中我们可以通过type直接获取单元类型,这里只是举例说明,通过判断是否存在G4来判断单元类型:
from ansa import base
from ansa import constants
elem = 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)