Как правильно определить исключение ограничения размера модели API в реальном времени?

Когда модель реального времени по какой-либо причине становится слишком большой, клиент реального времени выдает ошибку, например: «Ошибка: Class$S383: превышен предел размера модели. Используется: 10486181 байт; Предел: 10485760 байт в…»

Насколько я знаю, не существует задокументированного соответствующего gapi.drive.realtime.ErrorType, поэтому в настоящее время я использую следующее для его идентификации:

try {
    changeModelInSomeWay(rtModel);
} catch (e) {
    if (e && e.message && e.message.indexOf("Class$S383") > -1) {
         // Model is just too darn big:
         doSomething();
    } else {
         doSomethingElse(e);
    }
};

... который, кажется, работает на данный момент, но кажется хрупким, подверженным изменениям и т. д.

ОБНОВИТЬ:

Да, это хрупко, теперь я видел идентичную ошибку, за исключением класса Class $ S390. Если кто-то все еще следит за тегом Realtime API, какой-то ответ будет очень признателен...

Каков правильный или, по крайней мере, надежный способ определить эту ошибку?


person HeyHeyJC    schedule 22.01.2016    source источник
comment
Возможно, это дубликат этого потока.   -  person gerardnimo    schedule 23.01.2016
comment
Нет, он спрашивает, что вы можете с этим сделать, я спрашиваю, как вы можете это идентифицировать.   -  person HeyHeyJC    schedule 23.01.2016
comment
Я не думаю, что есть прямой способ определить эту ошибку, но я думаю, что есть обходной путь, который можно сделать, используя bytesUsed(). Поскольку ограничение уже задано в 10485760 байт, возможно, вы можете сравнить уже использованные байты и ограничение в 10485760.   -  person gerardnimo    schedule 23.01.2016
comment
Ну да, я уже делаю это, чтобы предотвратить ситуацию, в которой возникает ошибка, но нет никакого способа узнать, приведет ли это к этому единственное изменение. Несмотря ни на что, я должен поймать и идентифицировать ошибку.   -  person HeyHeyJC    schedule 23.01.2016