Tôi muốn vô hiệu hóa ngăn xếp ngăn xếp được tạo khi một ngoại lệ được ném. Tôi đã sử dụng,Làm thế nào để tắt tính năng tạo dấu vết trong một chương trình java?
Runtime.getRuntime().traceInstructions(false);
Runtime.getRuntime().traceMethodCalls(false);
nhưng vẫn có thể thấy dấu vết được tạo. Làm thế nào bạn có thể làm điều đó? Ngoài ra tôi cần phải phát hiện xem một số là gỡ lỗi lớp học của tôi.
Tôi muốn tắt tất cả các dấu vết ngoại lệ. Tôi không thể sử dụng obfuscation kể từ khi sản phẩm của tôi là một SDK sẽ được sử dụng trong phát triển. Tôi đang cung cấp một Runtime cũng được sử dụng khi mọi người muốn triển khai các ứng dụng của họ được xây dựng bằng cách sử dụng SDK của tôi. Yêu cầu của tôi là bất cứ ai sử dụng các jars Runtime của tôi sẽ không thể gỡ lỗi mã được viết ... hoặc ít nhất tôi sẽ làm cho nó khó khăn để gỡ lỗi bằng cách tránh các thế hệ theo dõi ngăn xếp từ các lọ thời gian chạy của tôi.
Một cách mà tôi đã tìm thấy là tất cả các trường hợp ngoại lệ được bắt nguồn từ lọ runtime của tôi, tôi chỉ có thể bắt họ và thiết lập một mảng StackTraceElement trống trên các đối tượng ngoại lệ và tái ném nó ...
Tại sao yêu cầu đó? Giả sử bạn phát triển một ứng dụng sử dụng SDK của tôi. (SDK SDK không thể đi kèm với ứng dụng của bạn .. tôi đã hạn chế nó và cuối cùng :) !!) Bây giờ để chạy ứng dụng của bạn trên máy khách của bạn (hoặc khách hàng) cần cài đặt Thời gian chạy trên máy của khách hàng và chạy ứng dụng của bạn. Bây giờ nếu khách hàng của bạn bắt đầu phát triển các ứng dụng của riêng mình bằng cách sử dụng các jars Runtime của tôi !! Đó là một mối đe dọa cho doanh nghiệp của tôi .... Đó là lý do tại sao yêu cầu khủng khiếp.
Tại sao tắt theo dõi ngăn xếp?
Bằng cách vô hiệu hóa thế hệ theo dõi ngăn xếp hoặc tạo dấu vết cuộc gọi phương thức, tôi muốn tạo mã với các Runtime jars của tôi khó khăn và đó là lý do tại sao tôi bắt đầu câu hỏi của tôi theo cách đó ... đề xuất một số giải pháp khác để đạt được yêu cầu ...
Tôi nghĩ có hai câu hỏi riêng biệt ở đây. Bạn nên giải quyết chúng một cách riêng biệt. – Joel
vui lòng thêm chi tiết hơn, ví dụ: tại sao chính xác bạn muốn tắt theo dõi ngăn xếp? những gì bạn có ý nghĩa chính xác bởi "vô hiệu hóa stacktrace" (vì nó chỉ là chuỗi các trường hợp ngoại lệ) –
Tôi nghĩ rằng bạn đang cung cấp cho người dùng của bạn dịch vụ kém ở đây. SDK không cung cấp ngoại lệ hữu ích? –