6 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
一種方法是try catch在您的ParseAll方法中添加:
ParsingAll()
{
try
{
}
catch(Exception e)
{
}
}
您可以正常調(diào)用它們:
id_source = await ParsingAll(0, "#adv_id", "");
foto_path = await ParsingAll(1, "img[id='print_user_photo']", "src");
position = await ParsingAll(0, "div.title.adv-title.newTitle > h1", "");
并返回一些帶有結(jié)果的狀態(tài)以判斷它是否成功。
或者您需要將它們分別包裝起來,以便在該語句失敗時(shí)執(zhí)行下一條語句:
try
{
foto_path = await ParsingAll(1, "img[id='print_user_photo']", "src");
}
catch(Exception e)
{
}
position = await ParsingAll(0, "div.title.adv-title.newTitle > h1", "");
但這一切都取決于程序要求流程將如何進(jìn)行。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以縮小 try-catch 塊:
解析器代碼可用
// May need its own try-catch blcok
id_source = await ParsingAll(0, "#adv_id", "");
try
{
foto_path = await ParsingAll(1, "img[id='print_user_photo']", "src");
catch (Exception ex)
{
Error?.Invoke(id_source + "- Error - ");
}
// May need its own try-catch blcok
position = await ParsingAll(0, "div.title.adv-title.newTitle > h1", "");

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
這樣做的唯一方法是將行拆分為單獨(dú)的try...catch子句:
try
{
id_source = await ParsingAll(0, "#adv_id", "");
catch (Exception ex)
{
Error?.Invoke(id_source + "- Error - ");
}
try
{
foto_path = await ParsingAll(1, "img[id='print_user_photo']", "src");
catch (Exception ex)
{
Error?.Invoke(id_source + "- Error - ");
}
…

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
從例程中獲取 foto_path 值,而不是 Try catch 或?qū)?try catch 放入 ParsingAll 例程中。

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
使用 finally 塊如何,無論是否發(fā)生異常,它都將始終執(zhí)行。我認(rèn)為這更像是一種解決方法,但最好的解決方案應(yīng)該是根據(jù)您的情況在 ParsingAll() 方法中處理它。
try
{
id_source = await ParsingAll(0, "#adv_id", "");
foto_path = await ParsingAll(1, "img[id='print_user_photo']", "src");
}
catch (Exception ex)
{
Error?.Invoke(id_source + "- Error - ");
}
finally
{
position = await ParsingAll(0, "div.title.adv-title.newTitle > h1", "");
}
- 6 回答
- 0 關(guān)注
- 253 瀏覽
添加回答
舉報(bào)