Repository: RustPython/RustPython
File: crates/vm/src/stdlib/sys.rs (Rust)

Code before:
            let kwargs: KwArgs = [("file".to_string(), stderr_obj)].into_iter().collect();
            let _ = print_tb.call(
                FuncArgs::new(vec![unraisable.exc_traceback.clone()], kwargs),
                vm,
            );
        }

        // Check exc_type
        if vm.is_none(unraisable.exc_type.as_object()) {
            return Ok(());
        }
        assert!(
            unraisable
                .exc_type
                .fast_issubclass(vm.ctx.exceptions.base_exception_type)
        );

        // Print module name (if not builtins or __main__)
        let module_name = unraisable.exc_type.__module__(vm);
        if let Ok(module_str) = module_name.downcast::<PyStr>() {
            let module = module_str.as_str();
            if module != "builtins" && module != "__main__" {
                write!(stderr, "{}.", module);
            }
        } else {
            write!(stderr, "<unknown>");
        }

        // Print qualname
        let qualname = unraisable.exc_type.__qualname__(vm);
        if let Ok(qualname_str) = qualname.downcast::<PyStr>() {
            write!(stderr, "{}", qualname_str.as_str());
        } else {
            write!(stderr, "{}", unraisable.exc_type.name());
        }

        // Print exception value
        if !vm.is_none(&unraisable.exc_value) {
            write!(stderr, ": ");
            if let Ok(str) = unraisable.exc_value.str(vm) {
                write!(stderr, "{}", str.to_str().unwrap_or("<str with surrogate>"));
            } else {
                write!(stderr, "<exception str() failed>");
            }
        }
        writeln!(stderr);

        // Flush stderr
        if let Ok(stderr_obj) = super::get_stderr(vm)
            && let Ok(flush) = stderr_obj.get_attr("flush", vm)
        {

Review comment (suggestion):
```suggestion
            write!(stderr, "<unknown>.");
```

Code after:
            let kwargs: KwArgs = [("file".to_string(), stderr_obj)].into_iter().collect();
            let _ = print_tb.call(
                FuncArgs::new(vec![unraisable.exc_traceback.clone()], kwargs),
                vm,
            );
        }

        // Check exc_type
        if vm.is_none(unraisable.exc_type.as_object()) {
            return Ok(());
        }
        assert!(
            unraisable
                .exc_type
                .fast_issubclass(vm.ctx.exceptions.base_exception_type)
        );

        // Print module name (if not builtins or __main__)
        let module_name = unraisable.exc_type.__module__(vm);
        if let Ok(module_str) = module_name.downcast::<PyStr>() {
            let module = module_str.as_str();
            if module != "builtins" && module != "__main__" {
                write!(stderr, "{}.", module);
            }
        } else {
            write!(stderr, "<unknown>.");
        }

        // Print qualname
        let qualname = unraisable.exc_type.__qualname__(vm);
        if let Ok(qualname_str) = qualname.downcast::<PyStr>() {
            write!(stderr, "{}", qualname_str.as_str());
        } else {
            write!(stderr, "{}", unraisable.exc_type.name());
        }

        // Print exception value
        if !vm.is_none(&unraisable.exc_value) {
            write!(stderr, ": ");
            if let Ok(str) = unraisable.exc_value.str(vm) {
                write!(stderr, "{}", str.to_str().unwrap_or("<str with surrogate>"));
            } else {
                write!(stderr, "<exception str() failed>");
            }
        }
        writeln!(stderr);

        // Flush stderr
        if let Ok(stderr_obj) = super::get_stderr(vm)
            && let Ok(flush) = stderr_obj.get_attr("flush", vm)
        {