Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix 'Do not throw uncaught exceptions in a destructor.' #1854

Merged
merged 1 commit into from
Jun 12, 2022

Conversation

sanomari
Copy link
Contributor

PR の目的

Sonar Cloudの無駄な警告を潰して、ツールが検出した「本当に問題のあるコード」を識別しやすくします。

カテゴリ

  • リファクタリング

PR の背景

ここのprojectではコードの静的解析に Sonar Cloud を使っています。
検出されたバグを修正する試みが何度か行われてきました。
最近はやっていないようですが、現在 115 件のバグが放置されています。
https://sonarcloud.io/project/overview?id=sakura-editor_sakura

今回はこのうちの1つを対応したいと思います。

Do not throw uncaught exceptions in a destructor.
https://sonarcloud.io/project/issues?issues=AX-cH330iOmgBqQJ-eXj&open=AX-cH330iOmgBqQJ-eXj&id=sakura-editor_sakura

PR のメリット

PR のデメリット (トレードオフとかあれば)

仕様・動作説明

「デストラクタで例外を投げないようにしましょう」
の警告に対処します。

デストラクタ内の以下のコードが問題です。

  • std::wstring(const wchar_t*)はメモリ確保に失敗すると例外を投げます。
  • std::wstring::operator += (const wchar_t*)はメモリ確保に失敗すると例外を投げます。

クラス内に同じコードが3か所あるので、
コードの結果をメンバに保持するよう変更し、
コンストラクタでnameを設定するようにします。

「例外を投げるコンストラクタ」も常識的にはNGですが、
Sonar Cloudでは警告されないので気付かなかったことにします。

修正箇所以外のCode Smellsは無視します。

PR の影響範囲

CWriteDataはGrep置換のときに使われるクラスです。

テスト内容

テスト1

手順

関連 issue, PR

参考資料

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@AppVeyorBot
Copy link

Build sakura 1.0.4153 completed (commit e1dda7c569 by @sanomari)

Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

誤検知というほど誤検知でもないので、対応する、で進めてよいと思います。

Grep置換がテスト不能な機能であることの対策をどこかでしたいです。

@sanomari sanomari merged commit d914cb8 into sakura-editor:master Jun 12, 2022
@sanomari sanomari deleted the feature/fix_bad_destructor branch June 12, 2022 23:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants