try
{
//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容
}
catch
{
//除非try里面执行代码发生了异常,否则这里的代码不会执行
}
finally
{
//不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally
}
try-catch错误处理表达式允许将任何可能发生异常情形的程序代码放置在try{}程序代码块进行监控,真正处理错误异常的程序代码则被放置在catch{}块内,一个try{}块可对应多个catch{}块。可以通过多个catch语句进行捕获异常。
const transfromedDataDetail: DataManagement.typeTransfromedDataDetail = useMemo(() => {
// @ts-ignore
const transfromedDataDetail: DataManagement.typeTransfromedDataDetail = {
...DataDetail, //这里使用解构赋值,为什么transfromedDataDetail不能识别,有没有其他更好的办法
updateTM: (() => {
let period: {
[key: string]: any
};
try {
// 这里updateTM历史数据可能和现在数据不兼容,为防止页面报错卡死,需要做用try catch的处理!
period = JSON.parse(DataDetail!.updateTM || '{}');
} catch{
period = {}
}
return Object.keys(period).reduce((p: any, key: string) => {
if (period[key]) {
let [date, time] = period[key].split('-');
if (key === 'day') {
time = date;
date = undefined;
}
p[key] = {
checked: !!period[key],
time,
date,
};
}
return p
}, {});
})(),
dataBusiness: tranformOwer(DataDetail!.dataBusiness),
dataTechOwner: tranformOwer(DataDetail!.dataTechOwner),
scope: tranformScope(DataDetail!.scope)
// scope: DataDetail!.scope
};
return transfromedDataDetail;
}, [DataDetail])