Skip to content

۴. چاپ خطاهای داخلی اپلیکیشن ​

گاهی اوقات کدی که در implementation می‌نویسید باعث می‌شود خود اپلیکیشن (نه اسکریپت فریدا) خطا دهد. مثلا متد اصلی (this.method()) را با آرگومان غلط صدا می‌زنید و اپلیکیشن کرش می‌کند. برای اینکه بفهمید اپلیکیشن چه خطایی داده، می‌توانید خطای جاوا را گرفته و چاپ کنید.

کد فریدا (شکار خطای جاوا):

javascript
Java.perform(function () {
    var Calculator = Java.use("com.example.app.Calculator")

    Calculator.divide.implementation = function (a, b) {
        try {
            /* فرض کنید b صفر است و این کار باعث ارور در جاوا می‌شود */            
            return this.divide(a, b)
            
        } catch (javaException) {
            /* اینجا خطای سمتِ جاوا (مثل DivideByZero) را می‌گیریم */            
            console.error("[!] Java Exception caught inside app:")
            console.error("    " + javaException.toString())
            
            /* می‌توانیم جلوی کرش را بگیریم و مقدار دلخواه برگردانیم */            
            return 0
        }
    }
})