diff --git a/WeldingComponents/WeldingCommon/Sequences/Main/SeqUploadWeldingList.cs b/WeldingComponents/WeldingCommon/Sequences/Main/SeqUploadWeldingList.cs index af5823f..0bc06d7 100644 --- a/WeldingComponents/WeldingCommon/Sequences/Main/SeqUploadWeldingList.cs +++ b/WeldingComponents/WeldingCommon/Sequences/Main/SeqUploadWeldingList.cs @@ -361,7 +361,20 @@ namespace WeldingCommon.Sequences if (!obj.Enabled) return 0; - uint repeatCount = getScannerParameter(obj).NumberOfCount; + // [예외처리 2026-09-07] 출사 분기가 없는 객체 방어 + // Ellipse / Rectangle / Roi 는 아래 타입 분기에도, getScannerParameter() 에도 + // 해당 분기가 없어 null 이 반환된다. 그대로 두면 바로 아래 NumberOfCount 접근에서 + // NullReferenceException 이 발생해 프로그램이 종료된다. + // (세 타입 모두 Enabled 기본값이 true 라 위 조기 반환에도 걸리지 않는다) + // 해당 객체만 건너뛰고 나머지 객체의 리스트 적재는 그대로 진행한다. + // ※ 원래도 이 객체들은 용접되지 않았다. 동작은 그대로 두고 종료만 막는다. + ScannerParam objScannerParam = getScannerParameter(obj); + if (objScannerParam == null) { + Log.E(string.Format($"[UploadWeldingList] 출사 미지원 객체 건너뜀 - Type({obj.Type}), No({obj.No + 1}), ParamID({obj.ScannerParamID})")); + return 0; + } + + uint repeatCount = objScannerParam.NumberOfCount; if (repeatCount <= 0) repeatCount = 1;