@@ -298,14 +298,23 @@ private async void SelectShellOrTerminal(object _, RoutedEventArgs e)
298
298
if ( shell . Name != "Custom" )
299
299
{
300
300
options = new FilePickerOpenOptions ( )
301
+ {
302
+ FileTypeFilter = [ new FilePickerFileType ( shell . Name ) { Patterns = [ shell . Exec ] } ] ,
303
+ AllowMultiple = false ,
304
+ } ;
305
+ }
306
+
307
+ IReadOnlyList < IStorageFile > selected = null ;
308
+ try
301
309
{
302
- FileTypeFilter = [ new FilePickerFileType ( shell . Name ) { Patterns = [ shell . Exec ] } ] ,
303
- AllowMultiple = false ,
304
- } ;
310
+ selected = await StorageProvider . OpenFilePickerAsync ( options ) ;
311
+ }
312
+ catch ( Exception ex )
313
+ {
314
+ App . RaiseException ( string . Empty , $ "Failed to select shell/terminal: { ex . Message } ") ;
305
315
}
306
316
307
- var selected = await StorageProvider . OpenFilePickerAsync ( options ) ;
308
- if ( selected . Count == 1 )
317
+ if ( selected is { Count : 1 } )
309
318
{
310
319
ViewModels . Preferences . Instance . ShellOrTerminalPath = selected [ 0 ] . Path . LocalPath ;
311
320
}
@@ -328,14 +337,23 @@ private async void SelectExternalMergeTool(object _, RoutedEventArgs e)
328
337
if ( tool . Name != "Custom" )
329
338
{
330
339
options = new FilePickerOpenOptions ( )
331
- {
332
- FileTypeFilter = [ new FilePickerFileType ( tool . Name ) { Patterns = tool . GetPatterns ( ) } ] ,
333
- AllowMultiple = false ,
334
- } ;
340
+ {
341
+ FileTypeFilter = [ new FilePickerFileType ( tool . Name ) { Patterns = tool . GetPatterns ( ) } ] ,
342
+ AllowMultiple = false ,
343
+ } ;
335
344
}
336
345
337
- var selected = await StorageProvider . OpenFilePickerAsync ( options ) ;
338
- if ( selected . Count == 1 )
346
+ IReadOnlyList < IStorageFile > selected = null ;
347
+ try
348
+ {
349
+ selected = await StorageProvider . OpenFilePickerAsync ( options ) ;
350
+ }
351
+ catch ( Exception ex )
352
+ {
353
+ App . RaiseException ( string . Empty , $ "Failed to select merge tool: { ex . Message } ") ;
354
+ }
355
+
356
+ if ( selected is { Count : 1 } )
339
357
{
340
358
ViewModels . Preferences . Instance . ExternalMergeToolPath = selected [ 0 ] . Path . LocalPath ;
341
359
}
0 commit comments