Обработка исключений, выданных провайдером типа F # в сценарии FSX - PullRequest
2 голосов
/ 14 января 2020

У меня есть скрипт FSX, который включает провайдера типов. Когда скрипт запускается, я хотел бы показать удобное для пользователя сообщение, когда провайдер типа выдает исключение. (Например, когда SqlDataProvider не может подключиться к базе данных.)

Возможно ли это?

Это, очевидно, не сработает, но иллюстрирует идею:

type Sql =
    try
        SqlDataProvider< DatabaseVendor = databaseVendor, ConnectionString = connectionString, TableNames = tableNames >
    with ex ->
        printfn "Cannot connect to the database."

Здесь - это сущность, которую можно использовать для проверки потенциальных решений.

1 Ответ

1 голос
/ 14 января 2020

Когда скрипт запускается, исключение будет выдано, но только если вы не используете или не создаете экземпляр типа из провайдера типов.

В вашем случае вы бы не обернули определение типа в попытке, а использование:

type Sql = SqlDataProvider<...>

// When you go to _use_ the type, handle exceptions:
try
    let ctx = Sql.GetDataContext ()
    // .. use
with
| :? SomeExceptionType as ex -> printfn "Cannot connect to the database."
...