Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,13 @@ export default defineComponent({
}
})
errors.value.push({ level: MessageLevel.Fatal, message: e.error?.message || e.error?.detail || e.message || e.toString(), name: music.name });
try {
await api.DeleteMusic(music.id, selectedADir.value);
} catch {
if (music.importStep !== IMPORT_STEP.create) {
// 如果是在创建乐曲这步就挂了,说明乐曲XML没有创建成功,则不需要删除乐曲。
// 否则,在ID冲突的情况下,会把原本的乐曲给删除掉,见 https://github.com/MuNET-OSS/MaiChartManager/issues/34
try {
await api.DeleteMusic(music.id, selectedADir.value);
} catch {
}
Comment on lines +219 to +220

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

在回滚操作中,删除部分导入的乐曲时,如果 api.DeleteMusic 调用失败,错误会被静默地忽略。这可能会导致系统中残留部分导入的数据,而用户却不知情。建议在 catch 块中至少记录一条错误日志,或者向用户显示一个警告信息,告知清理失败。

          } catch (deleteError: any) {
            console.error(`Failed to delete music ${music.id} during rollback:`, deleteError);
            const message = deleteError?.error?.message || deleteError?.error?.detail || deleteError?.message || deleteError?.toString();
            errors.value.push({ level: MessageLevel.Warning, message: `Failed to clean up partially imported music: ${message}`, name: music.name });
          }

}
}
}
Expand Down