From c82e3277fd4c93fab5e9c2b7720ae9a6897529de Mon Sep 17 00:00:00 2001 From: leiurayer <1432593898@qq.com> Date: Mon, 4 Apr 2022 16:58:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A7=86=E9=A2=91BV1rr4y1i74?= =?UTF-8?q?o=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BD=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DownKyi.Core/Storage/Database/DbHelper.cs | 8 ++++++ src/DownKyi.Core/Storage/StorageCover.cs | 26 +++++++++++++++-- src/DownKyi.Core/Storage/StorageHeader.cs | 28 ++++++++++++++++--- 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/src/DownKyi.Core/Storage/Database/DbHelper.cs b/src/DownKyi.Core/Storage/Database/DbHelper.cs index 56b4c57..a2e753f 100644 --- a/src/DownKyi.Core/Storage/Database/DbHelper.cs +++ b/src/DownKyi.Core/Storage/Database/DbHelper.cs @@ -72,6 +72,8 @@ namespace DownKyi.Core.Storage.Database /// public void Open() { + if (conn == null) { return; } + if (!IsOpen()) { conn.Open(); @@ -83,6 +85,8 @@ namespace DownKyi.Core.Storage.Database /// public void Close() { + if (conn == null) { return; } + if (IsOpen()) { conn.Close(); @@ -97,6 +101,8 @@ namespace DownKyi.Core.Storage.Database /// public void ExecuteNonQuery(string sql, Action action = null) { + if (conn == null) { return; } + try { lock (conn) @@ -129,6 +135,8 @@ namespace DownKyi.Core.Storage.Database /// public void ExecuteQuery(string sql, Action action) { + if (conn == null) { return; } + try { lock (conn) diff --git a/src/DownKyi.Core/Storage/StorageCover.cs b/src/DownKyi.Core/Storage/StorageCover.cs index eb0a115..13aa340 100644 --- a/src/DownKyi.Core/Storage/StorageCover.cs +++ b/src/DownKyi.Core/Storage/StorageCover.cs @@ -44,10 +44,30 @@ namespace DownKyi.Core.Storage { if (cover == null) { return null; } - Bitmap bitmap = new Bitmap(cover); - Image thumbnail = bitmap.GetThumbnailImage(width, height, null, IntPtr.Zero); + try + { + Bitmap bitmap = new Bitmap(cover); + Image thumbnail = bitmap.GetThumbnailImage(width, height, null, IntPtr.Zero); + + return StorageUtils.BitmapToBitmapImage(new Bitmap(thumbnail)); + } + catch (ArgumentException e) + { + Utils.Debugging.Console.PrintLine(cover); + Utils.Debugging.Console.PrintLine("GetCoverThumbnail()发生异常: {0}", e); + + LogManager.Error("StorageCover.GetCoverThumbnail()", cover); + LogManager.Error("StorageCover.GetCoverThumbnail()", e); - return StorageUtils.BitmapToBitmapImage(new Bitmap(thumbnail)); + return null; + } + catch (Exception e) + { + Utils.Debugging.Console.PrintLine("GetCoverThumbnail()发生异常: {0}", e); + LogManager.Error("StorageCover.GetCoverThumbnail()", e); + + return null; + } } /// diff --git a/src/DownKyi.Core/Storage/StorageHeader.cs b/src/DownKyi.Core/Storage/StorageHeader.cs index a0d3077..5a89e99 100644 --- a/src/DownKyi.Core/Storage/StorageHeader.cs +++ b/src/DownKyi.Core/Storage/StorageHeader.cs @@ -44,10 +44,30 @@ namespace DownKyi.Core.Storage { if (header == null) { return null; } - var bitmap = new Bitmap(header); - var thumbnail = bitmap.GetThumbnailImage(width, height, null, IntPtr.Zero); + try + { + Bitmap bitmap = new Bitmap(header); + Image thumbnail = bitmap.GetThumbnailImage(width, height, null, IntPtr.Zero); + + return StorageUtils.BitmapToBitmapImage(new Bitmap(thumbnail)); + } + catch (ArgumentException e) + { + Utils.Debugging.Console.PrintLine(header); + Utils.Debugging.Console.PrintLine("GetHeaderThumbnail()发生异常: {0}", e); + + LogManager.Error("StorageHeader.GetHeaderThumbnail()", header); + LogManager.Error("StorageHeader.GetHeaderThumbnail()", e); - return StorageUtils.BitmapToBitmapImage(new Bitmap(thumbnail)); + return null; + } + catch (Exception e) + { + Utils.Debugging.Console.PrintLine("GetHeaderThumbnail()发生异常: {0}", e); + LogManager.Error("StorageHeader.GetHeaderThumbnail()", e); + + return null; + } } /// @@ -58,7 +78,7 @@ namespace DownKyi.Core.Storage public string GetHeader(long mid, string name, string url) { HeaderDb headerDb = new HeaderDb(); - var header = headerDb.QueryByMid(mid); + Header header = headerDb.QueryByMid(mid); if (header != null) {