未联网状态下,调用getNetCapabilitiesSync接口,程序崩溃

参考https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-net-connection-0000001774281662#ZH-CN_TOPIC_0000001857915429__connectiongetnetcapabilitiessync10中的示例代码,在未联网状态下,程序直接运行崩溃,联网状态下可正常运行。

let netHandle = connection.getDefaultNetSync(); 
let getNetCapabilitiesSync = connection.getNetCapabilitiesSync(netHandle); 
console.log('getNetCapabilitiesSync is ' + JSON.stringify(getNetCapabilitiesSync));

报错如下:

Error message:Invalid parameter value 
Error code:2100001 
SourceCode: 
  let getNetCapabilitiesSync = connection.getNetCapabilitiesSync(netHandle);
HarmonyOS
2024-09-11 09:59:29
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

在未联网的情况下会出现运行崩溃的现象,是正常的。可以通过try,catch和if条件判断来增加代码健壮性:

getNetCapabilitiesSync在使用netHandle时需要判断netId是否为0,为0时,表示网络不可以。

其次,可以在调用getNetCapabilitiesSync方法上加上try catch捕获error信息,避免crash。

let netHandle = connection.getDefaultNetSync(); 
console.warn(' debug: netHandle = ', JSON.stringify(netHandle)); 
//netid为0,表示没有连接上,返回,就不需要调getNetCapabilitiesSync接口了 
if (netHandle.netId == 0) { 
  console.warn('network not connect.') 
  return ; 
} 
try { 
  let getNetCapabilitiesSync = connection.getNetCapabilitiesSync(netHandle); 
  console.warn(' debug: getNetCapabilitiesSync = ', JSON.stringify(getNetCapabilitiesSync)); 
} catch (error) { 
  console.warn(' debug: error = ', JSON.stringify(error)); 
}
分享
微博
QQ
微信
回复
2024-09-11 17:11:59
相关问题
TextInput组件输入状态下隐藏光标
1382浏览 • 1回复 待解决
何设置组件不同状态下的样式
2078浏览 • 1回复 待解决
如何设置组件不同状态下的样式
1948浏览 • 1回复 待解决
HarmonyOS 横屏状态下获取组件的宽高
404浏览 • 1回复 待解决
HarmonyOS 调用OH_LOG_SetCallback接口崩溃
31浏览 • 1回复 待解决
HarmonyOS 引用so库程序崩溃
24浏览 • 1回复 待解决
以下代码导致程序崩溃
507浏览 • 1回复 待解决
熄屏状态下网络请求失败
1940浏览 • 1回复 待解决
HarmonyOS API调用崩溃问题
467浏览 • 1回复 待解决
程序打开直接崩溃了,如何定位问题
2978浏览 • 1回复 待解决