1.异常:程序运行中意外发生的情况
2.除法运算
例子:
程序出现异常后会停止运行
function chu(num1: number, num2: number) {if (num2 == 0) {//抛出异常throw new Error('除数不能为零')}let num: number = num1 / num2console.log(num);
}
3.捕获异常
try {//尝试执行有可能有异常的代码块chu(1, 0)
} catch (error) {//对异常进行处理//error 出现的错误//console.log(error);
}
chu(1, 1)
练习:
1.模拟在文本框输入一个考试成绩,并分级
let num3: string = 'asd34.5'
function getNum(num: string): number {if (parseFloat(num)) {return parseFloat(num)} else {throw new Error('必须输入数字')}
}
2.主动捕获异常
try {if (getNum(num3) > 60) {console.log('及格');} else {console.log('不及格');}
} catch (err) {console.log('不及格');
}
3.模拟输入一个年龄,输完年龄之后,提示输入成功
不管是不是出现异常,都需要提示输入成功
例子:
let num: string = '12'
//转化年龄
function getNum1(num: string): number {if (parseInt(num)) {return parseInt(num)} else {throw new Error('年龄输入错误')}
}
function ts() {try {console.log('模拟输入的值为' + num);let age = getNum(num)console.log('年龄是:' + age);} catch (error) {} finally {//异常的最终解决方案//finally 无论是否出现异常都要执行console.log('输入成功');}}
ts()
异常的处理方式
1.主动捕获异常 try catch finally
try{
有可能出现异常的代码
}catch(error){
对异常的处理
}finally{
无论是否有异常,都会执行代码
}
2.抛出异常
throw new Error('提示词')
例子:
思考 return和finally的执行顺序
先执行finally,然后在执行return
function aa() {try {//异常代码return 123} catch (e) {return 456} finally {console.log('asdfghjk');}
}
let a=aa();
console.log(a);