From b99d4e82b626cbb00df6b035ce7d725f4e4ac805 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Wed, 28 Jan 2026 12:41:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BB=A3=E7=A0=81=E7=9A=84=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=A2=9E=E5=BC=BA=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=88=9D=E5=A7=8B=E5=8C=96=E9=94=99=E8=AF=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Core/MainPlugin.cs | 29 +++++++++++++++++++++++++++-- src/Core/PathDatabase.cs | 3 --- src/Core/PathPlanningManager.cs | 3 +++ 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/Core/MainPlugin.cs b/src/Core/MainPlugin.cs index 3eda1d7..820de55 100644 --- a/src/Core/MainPlugin.cs +++ b/src/Core/MainPlugin.cs @@ -490,14 +490,39 @@ namespace NavisworksTransport // 文档加载完成,初始化PathDatabase if (!string.IsNullOrEmpty(activeDoc?.FileName)) { - GlobalExceptionHandler.SafeExecute(() => + try { var pathManager = PathPlanningManager.GetActivePathManager(); if (pathManager != null) { pathManager.DatabaseInitialize(); } - }, "初始化PathDatabase"); + } + catch (Exception ex) + { + // 数据库初始化失败是严重错误,需要明确提示用户 + var errorMsg = $"数据库初始化失败:{ex.Message}\n\n"; + errorMsg += "可能的原因:\n"; + errorMsg += "1. 文件夹权限不足\n"; + errorMsg += "2. 磁盘空间不足\n"; + errorMsg += "3. 数据库文件被锁定\n"; + errorMsg += "4. SQLite 组件损坏\n\n"; + errorMsg += "详细信息请查看日志文件。"; + + LogManager.Error($"[文档管理] 数据库初始化失败: {ex.Message}", ex); + LogManager.Error($"[文档管理] 文档路径: {activeDoc.FileName}"); + LogManager.Error($"[文档管理] 异常类型: {ex.GetType().Name}"); + LogManager.Error($"[文档管理] 堆栈信息: {ex.StackTrace}"); + + System.Windows.MessageBox.Show( + errorMsg, + "数据库初始化失败", + System.Windows.MessageBoxButton.OK, + System.Windows.MessageBoxImage.Error + ); + + // 不重新抛出,避免插件崩溃,但批处理等功能将不可用 + } } } else if (_hasModels && !currentHasModels) diff --git a/src/Core/PathDatabase.cs b/src/Core/PathDatabase.cs index ede344a..54a8570 100644 --- a/src/Core/PathDatabase.cs +++ b/src/Core/PathDatabase.cs @@ -231,9 +231,6 @@ namespace NavisworksTransport VirtualVehicleLength REAL, VirtualVehicleWidth REAL, VirtualVehicleHeight REAL, - VehicleModelIndex INTEGER, - VehiclePathId TEXT, - VehicleObjectName TEXT, DetectAllObjects INTEGER NOT NULL DEFAULT 1, ClashDetectiveTestName TEXT, CollisionCount INTEGER, diff --git a/src/Core/PathPlanningManager.cs b/src/Core/PathPlanningManager.cs index d88cb19..3b18887 100644 --- a/src/Core/PathPlanningManager.cs +++ b/src/Core/PathPlanningManager.cs @@ -191,6 +191,9 @@ namespace NavisworksTransport catch (Exception ex) { LogManager.Error($"初始化路径分析数据库失败: {ex.Message}", ex); + LogManager.Error($"数据库路径: {Application.ActiveDocument?.FileName}"); + LogManager.Error($"异常类型: {ex.GetType().Name}"); + throw; // 重新抛出异常,让调用者知道初始化失败 } }