From b64f107a9deff7e873dc079ae76ce72ecffc6ccd Mon Sep 17 00:00:00 2001 From: CroakFang <1605296300@qq.com> Date: Mon, 11 Dec 2023 21:51:24 +0800 Subject: [PATCH] Improve code compatibility. --- .../UmaDatabase/UmaDatabaseController.cs | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs b/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs index d1c4357..76e93de 100644 --- a/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs +++ b/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs @@ -112,15 +112,36 @@ public class UmaDatabaseController UmaDatabaseEntry entry = null; try { - entry = new UmaDatabaseEntry + var typestr = sqlite_datareader.GetString(0); + if (Enum.TryParse(typestr, false, out var type)) { - Type = (UmaFileType)Enum.Parse(typeof(UmaFileType), sqlite_datareader.GetString(0)), - Name = sqlite_datareader.GetString(1), - Url = sqlite_datareader.GetString(2), - Prerequisites = sqlite_datareader.GetString(3) - }; + var name = sqlite_datareader.GetString(1); + var url = sqlite_datareader.GetString(2); + var prerequisites = sqlite_datareader.GetString(3); + + if (string.IsNullOrEmpty(name)) + { + throw new Exception($"Invalid entry name {name} or URL {url}"); + } + + entry = new UmaDatabaseEntry + { + Type = type, + Name = name, + Url = url, + Prerequisites = prerequisites + }; + } + else + { + throw new Exception($"Unrecognized EntryType Enum Value :{typestr}"); + } } - catch(Exception e) { Debug.LogError("Error caught: " + e + entry.Name); } + catch(Exception e) + { + Debug.LogError($"Error caught while reading Entry : \n {e}"); + } + if (entry != null) { meta.Add(entry.Name, entry);