[文章]最新 HUAWEI DevEco Studio 调试技巧

阅读量0
0
0
# 最新 HUAWEI DevEco Studio 调试技巧

## 前言

![image-20240531235823670](https://wsy996.obs.cn-east-3.myhuaweicloud.com/%E9%B8%BF%E8%92%99%E7%BC%96%E8%BE%91%E5%99%A8%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7/readme.assets/image-20240531235823670.png)

在我们使用 **HUAWEI DevEco Studio** 编辑器开发鸿蒙应用时,免不了要对我们的应用程序进行代码调试。我们根据实际情况,一般会用到以下几种方式进行代码调试。

1.  肉眼调试法
2.  注释排错调试法
3.  try-catch
4.  控制台输出法
5.  弹出提示法
6.  **断点调试法**

## 肉眼调试法

**肉眼调试法**也称为**随缘调试法**,一般适用于编辑器有明显错误、或者是刚写完的小段代码中,明显依赖自己的**钛合金狗眼**。当你刚刚写好的一两行代码,运行发现出错时,就可以直接肉眼排错。如

![image-20240531230947783](https://wsy996.obs.cn-east-3.myhuaweicloud.com/%E9%B8%BF%E8%92%99%E7%BC%96%E8%BE%91%E5%99%A8%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7/readme.assets/image-20240531230947783.png)

**肉眼调试法** 也有很明显的弊端,如果是调试大段程序、或者调试别人的程序。那么此法就不可行了。如:

![image-20240531231710994](https://wsy996.obs.cn-east-3.myhuaweicloud.com/%E9%B8%BF%E8%92%99%E7%BC%96%E8%BE%91%E5%99%A8%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7/readme.assets/image-20240531231710994.png)

## 注释排错调试法

**注释排错调试法**一般适用于没有明显的错误,自我感觉莫名其妙导致就出错的情况。如**代码昨天运行的时候还是好好,今天过来突然就不行了**。这个时候,可以大胆的根据代码流程来锁定可能出错的范围,将它注视掉。如果此时程序没有出错,那么就表示锁定出错的范围了。然后继续不断注释其他的,继续缩小范围,继续找到出错的可疑的代码,再进行调错。

![image-20240531231342832](https://wsy996.obs.cn-east-3.myhuaweicloud.com/%E9%B8%BF%E8%92%99%E7%BC%96%E8%BE%91%E5%99%A8%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7/readme.assets/image-20240531231342832.png)

## 控制台输出法

**控制台输出法**,是程序员最拿手的调试法。直接在控制台中输出自己想要查看的数据,便捷快速。

![image-20240531232324089](https://wsy996.obs.cn-east-3.myhuaweicloud.com/%E9%B8%BF%E8%92%99%E7%BC%96%E8%BE%91%E5%99%A8%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7/readme.assets/image-20240531232324089.png)

但是在 **HUAWEI DevEco Studio**中。控制台的输入也有弊端:

1. `console.log`的第一个参数必须时字符串
2. 无法有效的输出对象类型的数据。

![image-20240531232826263](https://wsy996.obs.cn-east-3.myhuaweicloud.com/%E9%B8%BF%E8%92%99%E7%BC%96%E8%BE%91%E5%99%A8%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7/readme.assets/image-20240531232826263.png)

因此对于对象类型的数据,一般可以通过序列化后再输出

```ts
console.log("二师兄", JSON.stringify(pug));

**Tips:**如果是对象数组,可以使用 console.table 来友好的进行输出

image-20240531233143803

try-catch

另外有一些程序可能在运行的时候会导致程序成直接崩溃,也没有太多错误提示,这个时候我们可以使用 try-catch 来捕获和输出错误

onPageShow() {
  try {
    const list: number[] = []
    const a = list[1] + list[2]
    console.log("成功输出", a)
  } catch (e) {
    console.log("错误信息", e.message, e.code)
  }
}

弹出提示法

进行真机调试时,可以直接利用 harmonyos中提供的弹出窗口的方式 进行输出想要查看的数据

  1. promptAction.showToast({ message: "黎猴呀" })
  2. AlertDialog.show({ message: "执返剂" })

image-20240531233422423


image-20240531233719248

断点调试法

如果上述的方案都解决不了你调试 bug 的需求,那么最后一种你就一定要拿捏住。 该方式主要是利用了 HUAWEI DevEco Studio种提供的断点调试方式来进行。

image-20240531234536893


回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友