<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_storage_controller_by_instance(self, connection_type, instance):
 """Returns a storage controller of a specific storage bus with the given instance number. in connection_type of type :class:`StorageBus` in instance of type int return storage_controller of type :class:`IStorageController` raises :class:`VBoxErrorObjectNotFound` A storage controller with given instance number doesn't exist. """

        if not isinstance(connection_type, StorageBus):
            raise TypeError("connection_type can only be an instance of type StorageBus")
        if not isinstance(instance, baseinteger):
            raise TypeError("instance can only be an instance of type baseinteger")
        storage_controller = self._call("getStorageControllerByInstance",
                     in_p=[connection_type, instance])
        storage_controller = IStorageController(storage_controller)
        return storage_controller