{"record":{"id":"098d98c35218a9f1","repo":"BCUninstaller/Bulk-Crap-Uninstaller","slug":"unknown-range","errorCode":null,"errorMessage":"Unknown range","messagePattern":"Unknown range","errorType":"exception","errorClass":"ArgumentOutOfRangeException","httpStatus":null,"severity":"error","filePath":"source/KlocTools/IO/FileSize.cs","lineNumber":212,"sourceCode":"\n            string rangeName;\n            switch (range)\n            {\n                case SizeRange.Tb:\n                    rangeName = longString ? Localisation.FileSize_TB_Long : Localisation.FileSize_TB_Short;\n                    break;\n                case SizeRange.Gb:\n                    rangeName = longString ? Localisation.FileSize_GB_Long : Localisation.FileSize_GB_Short;\n                    break;\n                case SizeRange.Mb:\n                    rangeName = longString ? Localisation.FileSize_MB_Long : Localisation.FileSize_MB_Short;\n                    break;\n                case SizeRange.Kb:\n                    rangeName = longString ? Localisation.FileSize_KB_Long : Localisation.FileSize_KB_Short;\n                    break;\n\n                default:\n                    throw new ArgumentOutOfRangeException(nameof(range), range, @\"Unknown range\");\n            }\n\n            return rangeName;\n        }\n\n\n        public XmlSchema GetSchema() { return null; }\n\n        public void ReadXml(XmlReader reader)\n        {\n            if (reader.MoveToContent() == XmlNodeType.Element)\n            {\n                reader.Read();\n                if (reader.HasValue)\n                {\n                    _sizeInKb = long.Parse(reader.Value);\n                    reader.Read();\n                }","sourceCodeStart":194,"sourceCodeEnd":230,"githubUrl":"https://github.com/BCUninstaller/Bulk-Crap-Uninstaller/blob/608321de98e92297377b1eb69029af55c25504a1/source/KlocTools/IO/FileSize.cs#L194-L230","documentation":"GetRangeString maps a SizeRange to its localised label via a switch covering Tb/Gb/Mb/Kb, after filtering out SizeRange.None. Reaching the default branch means an out-of-enum SizeRange value (e.g. cast from an arbitrary integer) was supplied. In normal flow GetCompactSize only ever assigns valid members, so this is effectively unreachable barring corruption or a future enum change.","triggerScenarios":"Casting an arbitrary int to SizeRange (e.g. (SizeRange)999); a new enum member added without a matching case; a deserialized/corrupted FileSize yielding an invalid range.","commonSituations":"Unreachable in normal use; indicates corruption, reflection-based misuse, or a future enum extension without a parser update.","solutions":["Ensure SizeRange values originate only from the enum members.","Add cases for any new enum members and keep the switch exhaustive.","Validate the range with Enum.IsDefined before formatting."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (!Enum.IsDefined(typeof(SizeRange), range))\n    throw new ArgumentOutOfRangeException(nameof(range));","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate SizeRange with Enum.IsDefined before formatting.","Keep the switch exhaustive when extending the enum."],"tags":["enum","switch","edge-case","filesystem"],"backgroundTag":null,"analyzedSha":"608321de98e92297377b1eb69029af55c25504a1","analyzedAt":"2026-08-13T12:17:35.389Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}