Перейти к содержимому
  • 0
eu_tomat

Выход из программы на CC.

Вопрос

Есть код для ComputerCraft:

function getPeripheral( p_type, p_side )
  if( peripheral.isPresent(p_side) )then
    if( peripheral.getType(p_side)==p_type )then
      return peripheral.wrap(p_side)
    end
  end
  print( "Error: "..p_type.." not found at "..p_side.." side" )
  exit()
end

Смысл функции состоит в том, что она проверяет наличие нужной периферии с определенной стороны и в случае успеха возвращает соответствующий объект. В противном же случае функция должна сообщить об ошибке и завершить работу программы.

 

Вопрос - как завершить работу программы правильно.

 

return не подходит, т.к. происходит выход лишь из функции.

os.shutdown полностью выключает компьютер, убирая сообщение об ошибке.

Другие известные мне варианты вроде приведенного в коде выдают дополнительную ошибку  "attempt to call nil".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Да, это уже лучше. Но хотелось бы оставить только тот вывод, что я хочу.

 

Просто поставь после своего print('что-то') команду error() с пустыми скобками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

error(smth) вместо print() в конце юзать?..

Да, это уже лучше. Но хотелось бы оставить только тот вывод, что я хочу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Просто поставь после своего print('что-то') команду error() с пустыми скобками.

То, что доктор прописал. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

 

Есть код для ComputerCraft:

function getPeripheral( p_type, p_side )
  if( peripheral.isPresent(p_side) )then
    if( peripheral.getType(p_side)==p_type )then
      return peripheral.wrap(p_side)
    end
  end
  print( "Error: "..p_type.." not found at "..p_side.." side" )
  exit()
end

 

 

 

Можно так:

m = peripheral.find('modem')
if m ==nil tnen error('Fatal Error. Modem not found!') end

"Финдом" можно автоматически искать и инициализировать любое ВРАП устройство, реактор это или АМИ, или чатбокс, не важно, с какой оно стороны прилеплено. 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...