2016-06-08 2 views
-1

Я делаю приложение в Visual Studio, которое запускает внешнюю программу.Как открыть файл с помощью Visual Basic?

Идея пришла мне на ум: что делать, если программа, которую я пытаюсь запустить, недоступна, что будет делать приложение?

Как вы можете сгенерировать сообщение об ошибке msgbox при запуске программы? (обратите внимание, что это версия VB на 2012 год).

Public Class Form1 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    System.Threading.Thread.Sleep(1000) 
    Process.Start("C:\Users\{Censored}\Desktop\Bungeecord.bat") 
End Sub 
End Class 
+0

Что попытки вы сделали? Каким образом это не работает? Учитывая текущий код *, каково поведение, когда файл недоступен? – David

+0

Ну, я попытался использовать «Если», но он не подходит моим кодам. –

+0

«Не подходит»? Например, в файле нет * пространства для него *? Это похоже на * очень * произвольное ограничение и не имеет ничего общего с реальной технической проблемой. – David

ответ

0

Я хотел бы использовать попытаться/уловы предложения

Try 
    [...] 
    Process.Start("C:\Users\{Censored}\Desktop\Bungeecord.bat") 
Catch ex As Exception 
    MsgBox("Can't access file " & vbCrLf & ex.Message) 
End Try 

Если вы не можете получить доступ к файлу сообщение будет отображаться

+1

Это бесполезно. Если метод 'Process.Start' выдает исключение, вы можете его поймать и отобразить сообщение. Но если вы * не * поймали исключение, вы все равно получили сообщение о том, что произошло исключение. Так что не совсем понятно, какую проблему вы здесь решили. Кроме того, всегда трудно поймать базовый класс «Исключение», потому что вы получите исключения, которые вы не должны глотать. Вам нужно поймать производный класс исключений, который вы действительно знаете, как обращаться. В этом случае это будет либо «FileNotFoundException», либо «Win32Exception». –

+0

@CodyGray Я согласен с вашей точкой только в том, чтобы перехватывать эти два особых исключения, но мне интересно, что вы имеете в виду * «Но если вы не поймали исключение, вы все равно получили бы сообщение» *: я не знаю, t думаю, что сбой приложения в результате необработанного исключения эквивалентен тому, что один метод терпит неудачу, а окно сообщения – MicroVirus

+0

@CodyGray Я дал быстрое решение для своей проблемы, я знаю, что лучше поймать правильное исключение, но оно может не нужно отвлекаться на проект, над которым вы работаете, и ловить любое исключение можно легко изменить. – David

Смежные вопросы