使用 try catch 防止页面报错而卡死

26 篇文章 0 订阅

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])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值