异常枚举;

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);
相关推荐
SoniaChen331 分钟前
Rust基础-part2-变量和可变类型
开发语言·后端·rust
Mintopia3 分钟前
Three.js 中的噪声与图形变换:一场数字世界的舞蹈
前端·javascript·three.js
Mintopia7 分钟前
计算机图形学漫游:从像素到游戏引擎的奇幻之旅
前端·javascript·计算机图形学
Tina_晴35 分钟前
【基础篇】Promise初体验+案例分析(上)
前端·javascript·面试
7ayl37 分钟前
闭包
javascript
断竿散人37 分钟前
浏览器 History 对象完全指南:从 API 原理到 SPA 路由实战
前端·javascript·vue-router
姜太小白44 分钟前
【ECharts】多个ECharts版本共存解决方案
前端·javascript·echarts
前端风云志1 小时前
JavaScript面试题,为什么[] + 0 = '0', 而{} + 0 = 0?
javascript
FogLetter1 小时前
节流(Throttle):给频繁触发的事件装上"冷却时间"
前端·javascript
神所夸赞的夏天1 小时前
c#获取Datatable中某列最大或最小的行数据方法
开发语言·c#