TypeScript异常处理

1.定义 

程序运行中意外发生的状况。

2.类型

2.1抛出异常 

 程序出现异常后会停止运行

关键词:throw

写法: throw new Error('提示词')

function chu(num1:number,num2:number){
    if(num2==0){
        //throw 作用抛出异常
        throw new Error('除数不能为零')
    }
    let num:number=num1/num2
    console.log(num);
}
2.2主动捕获异常  

出现异常不会停止运行

关键词:  try catch  finally 

写法:

try {
    //有可能出现异常的代码
 } catch (error) {
    //对异常的处理
 }finally{
   //无论是否有异常,都会执行的代码
 }
try{//尝试执行有可能有异常的代码块
    chu(1,0)
} catch (error) {//对异常进行处理
    //error  出现的错误
    console.log(error);
    
}//出现异常不会停止运行
chu(1,1)

 3.模拟在文本框输入一个考试成绩,并分级

let num3:string='34.5'
// try {
//     let score:number=parseFloat(num3)
// } catch (error) {
//     console.log(error);
// }
// let score:number=parseFloat(num3)
// console.log(score);
function getNum(num:string):number{
    if(parseFloat(num)){
      return  parseFloat(num)
    }else{
        throw new Error('必须输入数字')
    }
}
//主动捕获异常
try{
   if (getNum(num3)>60){
    console.log('及格');
}else{
    console.log('不及格');
    
}
}catch(err){
     console.log('不及格');
}
// console.log(getNum(num3));

 运行结果:

4. 模拟输入一个年龄,输完年龄后,提示输入成功(不管是不是出现异常,都需要提示输入成功)

let num:string='12'
//转化年龄
function getNum(num:string):number{
    if(parseInt(num)){
      return parseInt(num)
    }else{
        throw new Error('年龄输入错误')
    }
}
function ts(){
//     console.log('模拟输入的值为:'+num);
//    let age=getNum(num)
//    console.log('年龄是:'+age);
//    console.log('输入成功'); 
try {
    console.log('模拟输入的值为:'+num);
   let age=getNum(num)
   console.log('年龄是:'+age);
   
} catch (error) {
    
}finally{
    //异常的最终解决方案
    //finally  无论是否出现异常都要执行
    console.log('输入成功'); 
}
}
ts()

运行结果:

3.return和finally的执行顺序

先执行finally,然后再执行return,原因:finally无论是否异常都会执行,当try没有异常 又return 的时候,汇执行完finally之后再执行return 

function aa(){
    try{
        //异常代码
        return 123
    }catch(e){
        return 456
    } finally{
        console.log('fgfdg');
    }
}
let a=aa()
console.log(a);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值