Tôi chủ yếu hiểu các vấn đề tiềm ẩn với ngoại lệ đã kiểm tra và lý do Kotlin bỏ qua chúng. Tuy nhiên, vấn đề tôi đang gặp phải là tôi không thể tìm thấy bất kỳ cách nào rõ ràng để chỉ rõ cho người gọi những gì ngoại lệ một chức năng có thể ném.Có cách nào dễ dàng để xem ngoại lệ của chức năng Kotlin?
Tôi đã gặp phải vấn đề vô số lần trong Python, nơi chương trình của tôi sẽ bị lỗi sau khi chạy trong nhiều tháng vì tôi không nhận ra chức năng từ một số thư viện mà tôi đang sử dụng. Mặc dù bị buộc bắt các ngoại lệ có thể khá vấn đề, nhưng thật tuyệt khi thấy rõ tất cả các ngoại lệ tiềm ẩn mà một hàm có thể ném ra.
Vì vậy, quay lại câu hỏi, có cách nào đơn giản để xem ngoại lệ mà một chức năng ném trong Kotlin không? Điều gì về các phương pháp viết bằng Java đang được gọi từ Kotlin? Ngay cả khi chỉ trong dụng cụ (intelliJ). Tôi không tính viết nó trong javadoc hoặc kdoc là người viết hàm bạn đang sử dụng có thể đã bỏ qua nó.
Tôi cho rằng điều đó là không thể. Hãy xem xét những điều sau đây: 'val cls = Class.forName (a); val method = cls.getMethod (b); method.invoke() ', trong đó' a' và 'b' được đọc từ tệp hoặc được cung cấp bởi đầu vào của người dùng. Làm thế nào bạn có thể biết những gì ngoại lệ mã này ném trước khi bạn thực thi mã? –
Tôi có nghĩa là bạn sẽ thiếu tất cả các loại thông tin loại khi bạn sử dụng sự phản chiếu. Các vấn đề tương tự sẽ không áp dụng nếu bạn đang sử dụng sự phản chiếu trong Java? Tôi nghĩ rằng nó vẫn sẽ hữu ích để biết những gì ngoại lệ có thể được ném trong trường hợp loại được biết đến tại thời gian biên dịch. – zjuhasz