1.异常:程序运行中意外发生的情况
2.除法运算
例子:
程序出现异常后会停止运行
javascript
function chu(num1: number, num2: number) {
if (num2 == 0) {
//抛出异常
throw new Error('除数不能为零')
}
let num: number = num1 / num2
console.log(num);
}
3.捕获异常
javascript
try {//尝试执行有可能有异常的代码块
chu(1, 0)
} catch (error) {//对异常进行处理
//error 出现的错误
//console.log(error);
}
chu(1, 1)
练习:
1.模拟在文本框输入一个考试成绩,并分级
javascript
let num3: string = 'asd34.5'
function getNum(num: string): number {
if (parseFloat(num)) {
return parseFloat(num)
} else {
throw new Error('必须输入数字')
}
}
2.主动捕获异常
javascript
try {
if (getNum(num3) > 60) {
console.log('及格');
} else {
console.log('不及格');
}
} catch (err) {
console.log('不及格');
}
3.模拟输入一个年龄,输完年龄之后,提示输入成功
不管是不是出现异常,都需要提示输入成功
例子:
javascript
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
javascript
function aa() {
try {
//异常代码
return 123
} catch (e) {
return 456
} finally {
console.log('asdfghjk');
}
}
let a=aa();
console.log(a);