ios - react-native 无法处理 try catch 块中的错误
问题描述
我正在尝试使用 fetch() 函数发送图像。显示红屏和。发送数据之前出现“没有这样的文件或目录”错误。try catch 块没有处理这个错误。
019-02-11 22:35:00.375 [错误][tid:com.facebook.react.NetworkingQueue][RCTNetworking.mm:272] 错误处理请求正文:错误域 = NSCocoaErrorDomain 代码 = 260“文件“5325CBBA-340E -4227-AE17-5D42021DF648.jpg”无法打开,因为没有这样的文件。” UserInfo={NSFilePath=/Users/myuser/Library/Developer/CoreSimulator/Devices/9362AC50-7C82-4C8D-B686-39A6718CBA5F/data/Containers/Data/Application/64CD29E3-2BD9-4D9A-B168-4B12A848889C/Documents/images/ 5325CBBA-340E-4227-AE17-5D42021DF648.jpg,NSUnderlyingError=0x600003c0a790 {错误域=NSPOSIXErrorDomain Code=2“没有这样的文件或目录”}}
如何处理这个错误?
错误画面:https ://i.hizliresim.com/bVvqrm.png
VeriListele() {
try {
db.transaction((tx) => {
tx.executeSql("select * from " + TABLO_DATA + " where " + ROW_GONDERILDI_ + "=0", [], (tx, results) => {
console.log("Query completed2");
// Get rows with Web SQL Database spec compliance.
console.log(results.rows);
var len = results.rows.length;
const data = new FormData();
for (let i = 0; i < len; i++) {
try {
let row = results.rows.item(i);
console.log(row);
var FotoString='';
if (row.resim1!='' && row.resim1!='undefined') {
var resimjson=JSON.parse(row.resim1);
FotoString+='&photo[]='+row.resim1;
data.append('photo1[]', {
uri: resimjson.uri,
type: resimjson.type, // or photo.type
name: 'photo'
});
}
if (row.resim2!='' && row.resim2!='undefined') {
FotoString+='&photo[]='+row.resim2;
var resimjson=JSON.parse(row.resim2);
data.append('photo1[]', {
uri: resimjson.uri,
type:resimjson.type, // or photo.type
name: 'photo'
});
}
if (row.resim3!='' && row.resim3!='undefined') {
FotoString+='&photo[]='+row.resim3;
var resimjson=JSON.parse(row.resim3);
data.append('photo1[]', {
uri: resimjson.uri,
type: resimjson.type, // or photo.type
name: 'photo'
});
}
if (row.resim4!='' && row.resim4!='undefined') {
FotoString+='&photo[]='+row.resim4;
var resimjson=JSON.parse(row.resim4);
data.append('photo1[]', {
uri:resimjson.uri,
type: resimjson.type, // or photo.type
name: 'photo'
});
}
if (row.video!='' && row.video!='undefined') {
FotoString+='&video[]='+row.video;
var resimjson=JSON.parse(row.video);
data.append('video1[]', {
uri: resimjson.uri,
type: resimjson.type, // or photo.type
name: 'video'
});
}
try {
} catch (error) {
}
data.append('api_token', Global.GToken); // you can append anyone.
data.append('resid', row.id); // you can append anyone.
data.append('additional', row.ek_aciklama); // you can append anyone.
data.append('issue_date', row.tarih.split(' ')[0]); // you can append anyone.
try {
fetch("https://myapi.com/add", {
method: 'post',
body: data
}).then(function(response){
console.log(response);
var responseJson=JSON.parse(response._bodyText)
// console.log();
console.log(response);
// console.log(responseJson);
// console.log(responseJson);
if (responseJson.sonuc == 1) {
db.transaction((tx1) => {
console.log(row.id);
tx1.executeSql("update " + TABLO_DATA + " set gonderildi=1 where id=" + row.id + "");
});
} else if (responseJson.sonuc==0) {
console.log('basarisiz');
db.transaction((tx1) => {
// tx1.executeSql("update " + TABLO_DATA + " set gonderildi=1 where id=" + row.id + "");
});
}
}).catch(error =>console.log(error) )
} catch (error) {
console.log('bb');
}
} catch (error) {
console.log('ss');
}
}
});
});
} catch (error) {
console.log('dd');
}
// const Veriler = await AsyncStorage.getItem(‘products’)
}
解决方案
我看到有关丢失文件的错误日志,但看不到它与fetch
调用有何关系。你在发布那个文件吗?如果是这样,你能在你的代码中澄清这一点吗?
如果您没有在fetch
通话中使用该文件,那么您需要弄清楚它在哪里被使用以及为什么它不在那里。
仅供参考,您有一个.catch
之后fetch
会记录错误,然后防止任何fetch
错误在try/catch
.
推荐阅读
- c - 参数没有从输入函数中传递出去
- sql - 如何使用 SQL Server 检索月份数据?
- python - Python 日志查询
- oracle - oracle中有“立即执行”时如何实现refcursor?
- reactjs - 如何访问数组对象中的元素 [API]
- reactjs - 当InfiniteScroll在reactjs中向下滚动时如何保持其他组件保持在顶部位置
- python - 我如何处理基本矩阵?
- java - 如何使用 valueOf 将字符串数组转换为 int 数组?
- azure-devops - 如何从 Azure 数据工厂 v2 中的 Azure DevOps Git 存储库内容读取代码
- node.js - 如何从 cloudinary 访问上传功能之外的变量