fix: WRONGTYPE 错误处理 - key 类型变更时不崩溃
- loadKeyData: 类型特定命令 (SCARD/LLEN 等) 失败时重新获取 key 类型, 避免显示错误的编辑器 - SetEditor.loadMembers: 添加 catch 块, WRONGTYPE 时清空成员列表而非 抛出未捕获异常
This commit is contained in:
@@ -20,6 +20,8 @@ async function loadMembers() {
|
||||
loading.value = true
|
||||
try {
|
||||
members.value = await window.electronAPI.redis.setMembers(connStore.activeId, keyStore.selectedKey)
|
||||
} catch {
|
||||
members.value = []
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
@@ -138,6 +138,7 @@ export const useKeyStore = defineStore('key', () => {
|
||||
await loadKeyTypeAndTTL(connId, key)
|
||||
selectedKey.value = key
|
||||
|
||||
try {
|
||||
switch (selectedType.value) {
|
||||
case 'string':
|
||||
keyData.value = await window.electronAPI.redis.getString(connId, key)
|
||||
@@ -174,6 +175,13 @@ export const useKeyStore = defineStore('key', () => {
|
||||
default:
|
||||
keyData.value = null
|
||||
}
|
||||
} catch {
|
||||
// Type might have changed between TYPE check and the type-specific
|
||||
// command (e.g. key was overwritten). Re-fetch the type so the
|
||||
// correct editor is shown.
|
||||
await loadKeyTypeAndTTL(connId, key)
|
||||
keyData.value = null
|
||||
}
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user