Skip to content

Commit d7af218

Browse files
refactor: add try catch in tokenizer native modules
1 parent dd564e1 commit d7af218

2 files changed

Lines changed: 56 additions & 11 deletions

File tree

android/src/main/java/com/swmansion/rnexecutorch/Tokenizer.kt

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,32 +34,52 @@ class Tokenizer(
3434
input: ReadableArray,
3535
promise: Promise,
3636
) {
37-
promise.resolve(tokenizer.decode(createIntArray(input)))
37+
try {
38+
promise.resolve(tokenizer.decode(createIntArray(input)))
39+
} catch (e: Exception) {
40+
promise.reject(e.message!!, ETError.UndefinedError.toString())
41+
}
3842
}
3943

4044
override fun encode(
4145
input: String,
4246
promise: Promise,
4347
) {
44-
promise.resolve(createReadableArrayFromIntArray(tokenizer.encode(input)))
48+
try {
49+
promise.resolve(createReadableArrayFromIntArray(tokenizer.encode(input)))
50+
} catch (e: Exception) {
51+
promise.reject(e.message!!, ETError.UndefinedError.toString())
52+
}
4553
}
4654

4755
override fun getVocabSize(promise: Promise) {
48-
promise.resolve(tokenizer.vocabSize)
56+
try {
57+
promise.resolve(tokenizer.vocabSize)
58+
} catch (e: Exception) {
59+
promise.reject(e.message!!, ETError.UndefinedError.toString())
60+
}
4961
}
5062

5163
override fun idToToken(
5264
id: Double,
5365
promise: Promise,
5466
) {
55-
promise.resolve(tokenizer.idToToken(id.toInt()))
67+
try {
68+
promise.resolve(tokenizer.idToToken(id.toInt()))
69+
} catch (e: Exception) {
70+
promise.reject(e.message!!, ETError.UndefinedError.toString())
71+
}
5672
}
5773

5874
override fun tokenToId(
5975
token: String,
6076
promise: Promise,
6177
) {
62-
promise.resolve(tokenizer.tokenToId(token))
78+
try {
79+
promise.resolve(tokenizer.tokenToId(token))
80+
} catch (e: Exception) {
81+
promise.reject(e.message!!, ETError.UndefinedError.toString())
82+
}
6383
}
6484

6585
override fun getName(): String = NAME

ios/RnExecutorch/Tokenizer.mm

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,31 +23,56 @@ - (void)load:(NSString *)tokenizerSource
2323
- (void)encode:(NSString *)input
2424
resolve:(RCTPromiseResolveBlock)resolve
2525
reject:(RCTPromiseRejectBlock)reject {
26-
resolve([tokenizer encode:input]);
26+
@try {
27+
resolve([tokenizer encode:input]);
28+
} @catch (NSException *exception) {
29+
reject(@"tokenizer_error",
30+
[NSString stringWithFormat:@"%@", exception.reason], nil);
31+
}
2732
}
2833

2934
- (void)decode:(NSArray *)input
3035
resolve:(RCTPromiseResolveBlock)resolve
3136
reject:(RCTPromiseRejectBlock)reject {
32-
resolve([tokenizer decode:input]);
37+
@try {
38+
resolve([tokenizer decode:input]);
39+
} @catch (NSException *exception) {
40+
reject(@"tokenizer_error",
41+
[NSString stringWithFormat:@"%@", exception.reason], nil);
42+
}
3343
}
3444

3545
- (void)getVocabSize:(RCTPromiseResolveBlock)resolve
3646
reject:(RCTPromiseRejectBlock)reject {
37-
resolve([NSNumber numberWithUnsignedInteger:[tokenizer getVocabSize]]);
47+
@try {
48+
resolve([NSNumber numberWithUnsignedInteger:[tokenizer getVocabSize]]);
49+
} @catch (NSException *exception) {
50+
reject(@"tokenizer_error",
51+
[NSString stringWithFormat:@"%@", exception.reason], nil);
52+
}
3853
}
3954

4055
- (void)idToToken:(double)input
4156
resolve:(RCTPromiseResolveBlock)resolve
4257
reject:(RCTPromiseRejectBlock)reject {
43-
NSInteger tokenID = (NSInteger)input;
44-
resolve([tokenizer idToToken:tokenID]);
58+
@try {
59+
NSInteger tokenID = (NSInteger)input;
60+
resolve([tokenizer idToToken:tokenID]);
61+
} @catch (NSException *exception) {
62+
reject(@"tokenizer_error",
63+
[NSString stringWithFormat:@"%@", exception.reason], nil);
64+
}
4565
}
4666

4767
- (void)tokenToId:(NSString *)input
4868
resolve:(RCTPromiseResolveBlock)resolve
4969
reject:(RCTPromiseRejectBlock)reject {
50-
resolve([NSNumber numberWithInteger:[tokenizer tokenToId:input]]);
70+
@try {
71+
resolve([NSNumber numberWithInteger:[tokenizer tokenToId:input]]);
72+
} @catch (NSException *exception) {
73+
reject(@"tokenizer_error",
74+
[NSString stringWithFormat:@"%@", exception.reason], nil);
75+
}
5176
}
5277

5378
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:

0 commit comments

Comments
 (0)