错误信息
The value of ${param} is out of range.
错误描述
调用接口时某个参数超出了其正常范围的取值(如参数索引越界等)。
可能原因
某个参数索引超出可用范围。
处理步骤
检查输入参数的索引是否越界。
错误信息
Invalid ${param} string.
错误描述
调用接口时,传入的字符串不符合该接口要求的格式规范,导致解析失败。
可能原因
调用接口时,某个字符串类型的参数为非规范的字符串,导致解析该字符串失败。
处理步骤
检查输入字符串的格式。
错误信息
Worker initialization failed.
错误描述
调用接口时Worker未能正常初始化。
可能原因
处理步骤
错误信息
The Worker instance is not running.
错误描述
调用接口时Worker对象处于非运行状态。
可能原因
当调用接口时,Worker实例化对象已经被销毁,或正在被销毁。
处理步骤
调用接口前,确认Worker对象未被调用terminate()销毁,确保Worker对象处于正常运行状态。无法保证时,可通过Worker对象的onerror回调监听异常状态。
错误信息
The called API is not supported in the worker thread.
错误描述
在Worker线程中调用了不支持的API。
可能原因
调用Worker线程中不支持的API。
处理步骤
确保使用Worker线程中支持的API,支持的API范围请参考Worker接口说明。
错误信息
An exception occurred during serialization.
错误描述
Worker线程间传输数据时,数据包含不支持序列化的类型,导致序列化失败。
可能原因
传输数据包含不支持序列化的类型或外部引入的类型,导致序列化失败。
处理步骤
确保传输信息属于Worker支持的合法序列化对象,支持的序列化类型详查ArkTS线程间通信概述。
错误信息
The worker file path is invalid.
错误描述
Worker文件路径格式不符合规范或路径不存在,无法正确加载Worker。
可能原因
Worker文件路径格式不符合规范,或路径指向的文件不存在。
处理步骤
确保Worker文件路径符合创建Worker对象的规范,参见API参考中constructor9+接口的示例。
错误信息
The buffer size must be a multiple of ${size}.
错误描述
Buffer的长度不符合要求,长度需为特定size(2字节、4字节或8字节)的整数倍。
可能原因
Buffer的长度错误,不符合要求。Buffer长度要求为size的整数倍。其中size为2字节、4字节或者8字节。
处理步骤
确保Buffer长度符合要求。
Buffer长度要求为size的整数倍。其中size为2字节、4字节或者8字节。
错误信息
Container is empty.
错误描述
对空容器执行相关操作时,操作的容器为空。
可能原因
操作的容器为空,未添加相关元素。
处理步骤
确保操作的容器不为空,空容器请先向容器内添加元素。容器类接口参见相关容器类API参考文档。
错误信息
The {methodName} method cannot be bound.
错误描述
调用内置容器类的方法时,传入的this.object不是容器类的实例,容器类的方法不支持bind。
可能原因
容器类的方法不支持bind。
处理步骤
错误信息
The {className}'s constructor cannot be directly invoked.
错误描述
构造内置容器类的构造函数不支持直接调用。
可能原因
调用构造函数时未使用new关键字。
处理步骤
检查是否直接调用了内置容器类的方法,建议使用new关键字创建内置容器类。
错误信息
${propertyName} cannot be set for the buffer that has only a getter.
错误描述
Buffer的属性${propertyName}只读,不能进行设置。
可能原因
对Buffer的只读属性进行设置,导致异常。
处理步骤
不要对Buffer只读属性进行相关设置。
错误信息
The function is not marked as concurrent.
错误描述
函数未被标记为@Concurrent。
可能原因
任务池执行的任务所需的函数未添加@Concurrent。
处理步骤
检查任务池执行的任务所需的函数,并补上@Concurrent装饰器。
错误信息
The task to cancel does not exist.
错误描述
取消一个不存在的任务。
可能原因
取消任务时,该任务并不存在于任务池中。
处理步骤
取消任务前,确保任务已被taskpool.execute调用进入任务池且任务未执行完成。无法保证时,需要捕获异常。
错误信息
The task to cancel is being executed.
错误描述
取消正在执行的任务。
可能原因
取消任务时,该任务已经处于执行状态。
处理步骤
取消任务前,确保任务已被taskpool.execute调用进入任务池且任务未开始执行。无法保证时,需要捕获异常。
错误信息
The element does not exist in this container.
错误描述
删除的元素不存在于此容器中。
可能原因
删除元素时,此容器中不存在此元素。
处理步骤
删除元素前,先使用容器提供的查询方法(如has()或contains())确认元素存在于此容器中。
错误信息
The task group to cancel does not exist.
错误描述
取消一个不存在的任务组。
可能原因
取消任务组时,该任务组并不存在于任务池中。
处理步骤
取消任务组前,确保任务组已被taskpool.execute调用进入任务池且任务组内存在任务未执行完成。无法保证时,需要捕获异常。
错误信息
The globalCallObject is not registered.
错误描述
调用的对象未被注册,无法调用其方法。
可能原因
宿主线程Worker实例上没有注册过对应名称的对象或该对象在调用时已经被销毁。
处理步骤
避免在未注册或已取消注册后调用该对象上的方法,如果注册或销毁行为是动态的无法判断,调用时可用try-catch机制处理。
错误信息
The method to be called is not callable or is an async method or a generator.
错误描述
调用注册对象上的方法时,该方法不可调用、为异步方法或为生成器函数。
可能原因
该对象所包含的属性不是可调用的或该对象所包含的方法是异步的或该对象是由生成器函数返回的。
处理步骤
应确保该方法对应的属性是可调用的,该方法本身或其底层不应存在异步方法,且该方法不应是由生成器函数返回的。
错误信息
Waiting for a global call timed out.
错误描述
全局调用等待结果返回超时。
可能原因
全局调用等待结果返回的时间超过了用户设置的时长(可通过相关接口设置超时时间),默认为5000ms。
处理步骤
应避免调用处理时间过长的方法,比如复杂计算、文件读写等;或根据实际需要适当调整全局调用的超时时长设置(默认为5000ms),否则会导致工作线程阻塞时间过长,运行性能差。
错误信息
The function is not called in the TaskPool thread.
错误描述
该函数未在任务池的线程中调用。
可能原因
在UI主线程中或在非taskpool的其他线程中调用该函数,而非通过taskpool.execute调用。
处理步骤
调用时,确保并发函数执行在taskpool线程中。无法保证时,需要捕获异常。
错误信息
The function is not called in the concurrent function.
错误描述
该函数未在并发函数中调用。
可能原因
该函数在回调函数中调用,而非在@Concurrent标记的并发函数内部调用。
处理步骤
调用时,确保函数调用在并发函数内部。无法保证时,需要捕获异常。
错误信息
The callback is not registered on the host side.
错误描述
该函数使用时,未在宿主线程通过注册接口注册回调函数,或注册的回调函数已被取消注册。
可能原因
调用该函数前,未在宿主线程通过注册接口注册回调函数,或注册的回调函数已被取消注册。
处理步骤
调用时,确保函数在宿主线程已通过注册接口注册回调。无法保证时,需要捕获异常。
错误信息
dependent task not allowed.
错误描述
当前串行队列中添加了存在依赖的任务。
可能原因
在串行队列中添加了使用addDependency()设置了依赖关系的任务,串行队列不允许存在依赖的任务。
处理步骤
排查找到串行队列里使用addDependency()添加依赖的任务,使用removeDependency()删除此任务的依赖。无法保证时,需要捕获异常。
错误信息
There is a circular dependency.
错误描述
当前任务存在循环依赖关系。
可能原因
多个任务之间通过addDependency()互相依赖,形成循环依赖链,导致任务无法正常执行。
处理步骤
排查找到循环依赖关系的相关任务,根据实际情况使用removeDependency()删除不需要的依赖关系,确保所有任务中不存在循环依赖关系。无法保证时,需要捕获异常。
错误信息
The dependency does not exist.
错误描述
依赖关系不存在。
可能原因
使用removeDependency()删除任务依赖时,依赖关系不存在。
处理步骤
调用时,确保在删除依赖之前,已经使用addDependency()成功添加依赖。无法保证时,需要捕获异常。
错误信息
The delayTime is less than zero.
错误描述
延时时间小于零。
可能原因
给定参数delayTime的值小于零(单位:ms)。
处理步骤
调用时,确保给定参数delayTime的值不小于零(单位:ms)。无法保证时,需要捕获异常。
错误信息
An ArrayBuffer cannot be set as both a transfer list and a clone list.
错误描述
不能将同一个ArrayBuffer同时设置为转移列表和克隆列表。
可能原因
在传输共享列表时,同一个ArrayBuffer既是setTransferList的参数,又是setCloneList的参数。
处理步骤
调用时,确保同一个ArrayBuffer只被设置为transferList或cloneList中的一种。无法保证时,需要捕获异常。
错误信息
The lock does not exist.
错误描述
调用异步锁函数时,使用了不存在的锁名称,无法获取锁。
可能原因
调用lockAsync等异步锁函数时,使用了一个不正确的锁名称作为参数。
处理步骤
确保在调用接口前,已通过ArkTSUtils.locks正确创建并注册了对应名称的异步锁实例,使用正确的锁名称进行调用。
错误信息
Timeout exceeded.
错误描述
lockAsync函数在指定时间内无法获取锁。
可能原因
异步锁之间存在循环依赖,导致死锁。
处理步骤
检查锁之间是否存在循环依赖。尝试在lockAsync调用中添加catch语句,并查看错误信息。错误信息将包含有关现有异步锁实例和可能的死锁警告的信息。
错误信息
Concurrent modification error.
错误描述
并发修改错误。
可能原因
使用collections提供的非并发安全的容器时,多个并发实例同时修改容器产生的结果是未定义的。
处理步骤
使用collections提供的非并发安全的容器时,使用异步锁进行保护。
错误信息
The executed task does not support the registration of listeners.
错误描述
监听回调函数未在任务执行前注册。
可能原因
未通过回调注册接口注册回调函数,或在taskpool.execute执行任务之后才注册回调函数。
处理步骤
确保在taskpool.execute执行任务之前,通过回调注册接口注册回调函数。监听接口参见TaskPool参考文档。
错误信息
The doWrite method has not been implemented.
错误描述
doWrite接口未实现。
可能原因
处理步骤
在继承类中实现doWrite接口函数。
错误信息
The stream has been ended.
错误描述
调用end接口结束流之后,仍尝试对已结束的流进行数据写操作,导致操作失败。
可能原因
调用end接口之后仍进行数据写操作。
处理步骤
调整调用接口的顺序,在end之后不进行写操作。
错误信息
The callback is invoked multiple times consecutively.
错误描述
多次调用callback回调函数。
可能原因
实现doWrite接口,并且在一次写入时多次调用callback。
处理步骤
检查doWrite接口实现,排除一次写入多次调用callback的情况。
错误信息
The doRead method has not been implemented.
错误描述
doRead接口未实现。
可能原因
处理步骤
在继承类中实现doRead接口函数。
错误信息
The doTransform method has not been implemented for a class that inherits from Transform.
错误描述
doTransform接口未实现。
可能原因
继承Transform类,未实现doTransform接口。
处理步骤
在继承类中实现doTransform接口函数。
错误信息
The concurrent task has been executed and cannot be executed periodically.
错误描述
并发任务已执行,无法周期执行。
可能原因
在调用executePeriodically执行周期任务前,该任务已经执行。
处理步骤
调用上述接口时,确保需要执行的任务未被执行。无法保证时,需要捕获异常。
错误信息
The periodic task cannot be executed again.
错误描述
无法再次执行周期任务。
可能原因
周期任务再次调用execute、executeDelayed、addTask和execute执行。
处理步骤
调用上述接口时,确保任务不是周期任务。无法保证时,需要捕获异常。
错误信息
The periodic task cannot have a dependency.
错误描述
周期性任务不能具有依赖项。
可能原因
调用了removeDependency和addDependency接口给周期任务增加或移除依赖关系。
处理步骤
调用上述接口时,确保任务不是周期任务。无法保证时,需要捕获异常。
错误信息
The asyncRunner task discarded.
错误描述
异步队列里的等待任务列表中的任务被丢弃。
可能原因
调用asyncRunner.execute执行task任务的数量超过等待任务列表容量时,最早入队的task任务就会被丢弃。
处理步骤
错误信息
The asyncRunner task has been canceled.
错误描述
异步队列任务被取消。
可能原因
取消异步任务时,该任务在任务池中等待执行,或者该任务还在等待任务列表里。
处理步骤
取消任务前,确保任务进入任务池且开始执行。无法保证时,需要捕获异常。
错误信息
The task has been executed by AsyncRunner.
错误描述
已被AsyncRunner执行的异步队列任务不能再添加或移除依赖项。
可能原因
异步队列任务调用了removeDependency或addDependency接口来添加或移除依赖关系。
处理步骤
调用removeDependency或addDependency接口时,请确保对应任务不是异步队列任务。无法保证时,请注意捕获异常。
错误信息
The task cannot be executed by two APIs.
错误描述
异步队列任务只能被asyncRunner.execute接口执行,不能被其他API执行;非异步队列任务,不能被asyncRunner.execute接口执行。
可能原因
处理步骤
错误信息
Task timed out.
错误描述
任务执行时间超过了指定的超时时间。
可能原因
任务在被可以设置超时的接口taskpool.execute或可以设置超时的泛型接口taskpool.execute调用时,设置的超时时间(单位:ms)较短,而任务执行时间超过了设置的超时时间。
处理步骤
调用上述接口时,确保设置的超时时间(单位:ms)的合理性。无法保证时,需要捕获异常。
错误信息
TaskGroup cannot be re-executed.
错误描述
设置过超时的任务组,无法再次被执行。
可能原因
处理步骤
错误信息
Precision limit exceeded.
错误描述
使用Decimal提供的函数时,运算结果超出精度限制。
可能原因
使用Decimal提供的函数超出精度限制。有以下函数会抛出这个错误码:pow、exp、log、ln、acos、asin、atan、acosh、asinh、atanh、log2、log10、atan2。
处理步骤
使用Decimal.set函数来设置有效精度。
如:Decimal.set({ precision: 10 }),设置有效精度。
错误信息
crypto unavailable.
错误描述
在Decimal中使用加密方法失败,加密方法不可用。
可能原因
在Decimal中设置crypto或使用Decimal.random函数时,使用加密方法失败。
处理步骤
使用Decimal.set函数来取消加密算法。
如:Decimal.set({ crypto: false}), 取消加密算法。
错误信息
The cumulative length of xml has exceeded the upper limit 100000.
错误描述
xml的累积字符已超过上限100000。
可能原因
已调用的接口中设置的参数总长度超过了上限100000。
处理步骤
减小当前接口中设置的参数长度。
错误信息
Illegal position for xml.
错误描述
xml文件声明或属性位置设置错误。
可能原因
未按照xml标准格式设置元素位置。
处理步骤
按照xml标准设置元素的位置。
错误信息
There is no match between the startElement and the endElement.
错误描述
元素开始标记与元素结束标记未匹配使用。
可能原因
元素结束标记写入前未写入元素开始标记。
处理步骤
先写入元素开始标记,后写入元素结束标记。
错误信息
Incorrect encoding format, only support utf-8.
错误描述
编码格式错误,只支持utf-8。
可能原因
编码格式非utf-8。
处理步骤
修改编码格式为utf-8。
错误信息
Transfer Error. The input name is not supported!
错误描述
transfer转换失败,传入不支持的类型。
可能原因
传入的类型为不支持的类型。
处理步骤
调用时,确保传入的类型是可用的。无法保证时,需要捕获异常。
错误信息
The underlying ArrayBuffer is null or detached.
错误描述
使用了已释放或分离的ArrayBuffer。
可能原因
ArrayBuffer已分离,或者ArrayBuffer为null。
处理步骤
调用时,确保使用的ArrayBuffer是可用的。无法保证时,需要捕获异常。
错误信息
TaskGroup timed out.
错误描述
任务组的整体执行时间超过了指定的超时时间。
可能原因
taskpool.execute调用任务组时,设置的超时时间(单位:ms)较短,而任务组整体执行时间超过了设置的超时时间。
处理步骤
调用上述接口时,确保设置的超时时间(单位:ms)的合理性。无法保证时,需要捕获异常。