Как я могу генерировать и обрабатывать ошибки на основе данных в Swift? - PullRequest
1 голос
/ 20 октября 2019

Код:

enum PwdError : Error
{
  case obvious;
}

func chkPwd(_ pwd : String) throws -> Bool
{
  if(pwd == "pwd")
  {
    throw PwdError.obvious;
  }

  return true;
}

print(chkPwd("pwd"));

Вывод REPL.it:

Swift version 5.0.1 (swift-5.0.1-RELEASE)
 swiftc -o main main.swift
main.swift:10:5: error: expected expression
    throws PwdError.obvious;
    ^
main.swift:16:7: error: call can throw but is not marked with 'try'
print(chkPwd("pwd"));
      ^~~~~~~~~~~~~
main.swift:16:7: note: did you mean to use 'try'?
print(chkPwd("pwd"));
      ^
      try
main.swift:16:7: note: did you mean to handle error as optional value?
print(chkPwd("pwd"));
      ^
      try?
main.swift:16:7: note: did you mean to disable error propagation?
print(chkPwd("pwd"));
      ^
      try!
compiler exit status 1

В приведенном выше коде я пытаюсь обработать ошибку, но все, что я получаюошибки. Я изучаю Swift, поэтому я новичок в этом. На данный момент я работаю в Java, так что, если кто-то объяснит с точки зрения Java, это было бы здорово для меня.

1 Ответ

0 голосов
/ 20 октября 2019

Вы должны вызвать функцию, используя try ключевое слово

do {
    try chkPwd("pwd")
}
catch {
    print(error) // prints obvious
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...