Почему VBOX_E_INVALID_VM_STATE используется в совершенно разных ситуациях? - PullRequest
2 голосов
/ 26 февраля 2020

Я посмотрел источники VBox на GitHub и увидел, что VBOX_E_INVALID_VM_STATE - это сообщение об ошибке, которое применяется во многих ситуациях, например, в следующих методах (среди прочих):

resumeWithReason, pauseWithReason, enableVMMStatistics, onlineMergeMedium, enumerateGuestProperties, onUSBDeviceDetach, accessGuestProperty, onUSBDeviceAttach, onSharedFolderChange, onUSBControllerChange, onVRDEServerChange, onStorageDeviceChange, onMediumChange, onStorageControllerChange, onParallelPortChange, onSerialPortChange, onNetworkAdapterChange, uninitialize, updateMachineState, assignRemoteMachine, assignMachine (target: xpidl, midl), getRemoteConsole, removeDeviceFilter, createDeviceFilter, teleport, restoreSnapshot, deleteSnapshotRange, deleteSnapshotAndAllChildren, takeSnapshot, removeSharedFolder, etc.

Есть ли причина, по которой одна и та же ошибка используется в совершенно разных ситуациях?

Это делает почти невозможным узнать причину, по которой гость ввел VBOX_E_INVALID_VM_STATE.

Не лучше ли иметь индивидуализированные результаты ошибок, связанные с методом, который их породил, например, VBOX_E_INVALID_VM_STATE_in_removeSharedFolder или VBOX_E_INVALID_VM_STATE_in_takeSnapshot?
Таким образом, у пользователя будет, по крайней мере, подозрение, почему его гостевая ВМ вошла VBOX_E_INVALID_VM_STATE.

Если я хочу создать ветвь кодовой базы VBox, где я буду реализовывать индивидуальные сообщения об ошибках, какую документацию мне следует прочитать, чтобы узнать, какие файлы в vbox включены github должен быть изменен?

...