未联网状态下,调用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组件输入状态下隐藏光标
1206浏览 • 1回复 待解决
何设置组件不同状态下的样式
2015浏览 • 1回复 待解决
如何设置组件不同状态下的样式
1895浏览 • 1回复 待解决
HarmonyOS 横屏状态下获取组件的宽高
303浏览 • 1回复 待解决
熄屏状态下网络请求失败
1832浏览 • 1回复 待解决
以下代码导致程序崩溃
431浏览 • 1回复 待解决
HarmonyOS API调用崩溃问题
406浏览 • 1回复 待解决
程序打开直接崩溃了,如何定位问题
2766浏览 • 1回复 待解决
OpenSL ES音频录制示例调用崩溃
1884浏览 • 1回复 待解决
Watcher接口如何订阅到OS的崩溃事件?
467浏览 • 1回复 待解决
HarmonyOS调用napi_call_function方法时崩溃
496浏览 • 1回复 待解决
有没有调用日历的接口?
6312浏览 • 1回复 待解决