Microsoft-ui-xaml: ํ† ๋ก : ๋ชจ๋“  ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ˜„์ง€ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2020๋…„ 04์›” 16์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/microsoft-ui-xaml

ํ† ๋ก : ๋ชจ๋“  ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ˜„์ง€ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?


์ŠคํŽ˜์ธ์–ด๋ฅผ ๊ตฌ์‚ฌํ•˜๋Š” ์ปดํ“จํ„ฐ ๊ณตํ•™ ํ•™์ƒ์ด์—ˆ๋˜ ์ €๋Š” ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๊ณ  ์–ธ์–ด๋ฅผ ๊ตฌ์‚ฌํ•˜์ง€ ๋ชปํ•  ๋•Œ ๋ชจ๊ตญ์–ด๋กœ ๋œ ์˜ค๋ฅ˜์™€ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๊ฐœ์„ ์˜ ๊ธฐํšŒ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. .

๊ด€๋ จ๋œ ๋งํฌ๋“ค

discussion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

WinUI๋Š” WinRT๋กœ ๊ตฌํ˜„๋˜๋ฉฐ WinRT์—๋Š” Exception.Message๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ WinUI๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋””๋ฒ„๊ฑฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ WPF/WinForms์—์„œ์™€ ๊ฐ™์ด ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. (WinUI๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋””๋ฒ„๊ฑฐ์—์„œ๋งŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ RoOriginateError๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.)

๋ชจ๋“  3 ๋Œ“๊ธ€

์ •๋ง ์œ ์šฉํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์‚ฌ์‹ค์€ ์˜์–ด์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์‰ฝ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. AppCenter ๋˜๋Š” HockeyApp๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๋Š” ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋ณ„๋กœ ์˜ค๋ฅ˜๋ฅผ ๊ทธ๋ฃนํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋•Œ๋•Œ๋กœ ์šฐ๋ฆฌ๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž PC ์–ธ์–ด๋กœ ๋ฒˆ์—ญ๊ณผ ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค.
  3. ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์˜์–ด๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  ๋” ์ค‘์š”ํ•œ ์‚ฌ์‹ค์€ ์˜์–ด์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์‰ฝ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  4. ์–ด๋–ค ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜ ๋Œ€ํ™” ์ƒ์ž์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ Exception.Message๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋กœ๊ทธ์— ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ - ๋งŒ์•ฝ ๋‹น์‹ ์ด ๋‹น์‹ ์˜ ์–ธ์–ด์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์—†๋Š” ๋กœ๊ทธ๋ฅผ ๋ฐ›๋Š”๋‹ค๋ฉด, ๊ทธ๊ฒƒ์€ ๋ณ„๋กœ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ๋น„ํ™œ์„ฑํ™” ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”์‹ : ์ €๋Š” ๋Ÿฌ์‹œ์•„์–ด๊ฐ€ ๋ชจ๊ตญ์–ด์ž…๋‹ˆ๋‹ค. ๋Ÿฌ์‹œ์•„์–ด์—์„œ ์•ฝ๊ฐ„์˜ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋‚˜์—๊ฒŒ๋Š” ๊ณ ํ†ต์ด์—ˆ์Šต๋‹ˆ๋‹ค)

.NET Core๊ฐ€ ์ตœ๊ทผ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€ ์ง€์—ญํ™”๋กœ ๋‹ค์‹œ ์ „ํ™˜๋˜์—ˆ์Œ์„ ๊ณ ๋ คํ•˜๋ฉด WinUI๊ฐ€ ๋”ฐ๋ฅด์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ด์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. [ํŽธ์ง‘] WinUI๊ฐ€ ์ˆœ์ˆ˜ํ•œ .NET์ด ์•„๋‹ˆ์ง€๋งŒ ์˜ˆ์™ธ ๊ฐœ์ฒด ๋Œ€์‹  HRESULT ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜ ๋Œ€ํ™” ์ƒ์ž์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ Exception.Message๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

UWP/WinUI ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์—์„œ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ WPF ๋ฐ WinForms ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์“ฐ๊ธฐ ์ €์žฅ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ํ•ฉ๋ฆฌ์ ์œผ๋กœ throw๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ์ง€์—ญํ™”ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

WinUI๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๋Œ€์‹  ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์ค‘์— ์˜ˆ์™ธ๋ฅผ catchํ•˜๋Š” ๊ฒฝ์šฐ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋ฅผ ์ผ๋ฐ˜ ์ง€์—ญํ™”๋œ ๋ฉ”์‹œ์ง€๋กœ ๋ฐ”๊พธ์ง€ ์•Š๋Š” ํ•œ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(๊ทธ๋ฆฌ๊ณ  ๋„ค, ์™ธ๊ตญ์–ด ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๊ณ ํ†ต์Šค๋Ÿฌ์šด ์ผ์ด์ง€๋งŒ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋ฅผ ํ˜„์ง€ํ™”๋œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์‹คํžˆ ์˜ˆ์ƒํ•˜๊ณ  ์žˆ๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ์‹œํ‚ฌ ๋•Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.)

WinUI๋Š” WinRT๋กœ ๊ตฌํ˜„๋˜๋ฉฐ WinRT์—๋Š” Exception.Message๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ WinUI๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋””๋ฒ„๊ฑฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ WPF/WinForms์—์„œ์™€ ๊ฐ™์ด ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. (WinUI๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋””๋ฒ„๊ฑฐ์—์„œ๋งŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ RoOriginateError๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰